DScaler -- Help

DScaler Logo DScaler Help

Welcome to the new improved DScaler help files.

The developers have spent a lot of time trying to put as much imformation as we can in this file. The help file is organized in sections:

  1. DScaler Help - This section contains basic information about DScaler including our Licence, installation instructions and keyboard shortcuts.

  2. Features - This section contains additional information about some of DScaler's important features.

  3. Deinterlace Methods - This section contains detailed information about each of DScaler's video deinterlacing methods.

  4. Filters - This section contains detailed information about each of DScaler's video processing filters.

  5. Advanced - This section contains very detailed information about the configuarable parameters in DScaler. This section is intended for advanced users who wish to tweak DScaler.

  6. Developers - This section contains information for those who want to contribute to the DScaler project.


DScaler -- What's New

DScaler Logo What's New

DScaler - version 4.1.8

What's new (since 4.1.7):

  • Timeshift avi file path in advanced settings
  • Improved Preview mode
  • Ctrl+Up and Ctrl+Down keys added to request previous or next page of channels/stills when in previous mode
  • Improved Toolbars and skins code

What's Improved

  • Some multiple-monitor bug fixes
  • Some timethift bug fixes
  • Lots of other minor bug fixes

What's Experimental:

  • PowerStrip modeline option when changing resolution in the full screen mode
  • DirectShow support for tuners and file
  • Skins & Toolbar
  • Timeshift
  • Resolution changing
  • Colorimetry filter
  • DScope video filter


DScaler -- Readme

DScaler Logo READ ME

DScaler - version 4.1.8

What's New

See News.

License:

This file is subject to the terms of the GNU General Public License as published by the Free Software Foundation. A copy of this license is included with this software distribution in the file COPYING.html. If you do not have a copy, you may obtain a copy by writing to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details

Requirements:

  • I think it will run on Win 95/98 and NT. I have tested it on 98, ME and Windows 2000.
  • You will need a processor faster than about Pentium II 400MHz to use all the features.
  • You will definitely need a PCI TV card with a BT848 BT849 BT878 BT879 in it.
  • You will a graphics card that supports YUY2 overlays and has enough video memory spare for the video buffers DScaler uses.
  • This software will not work with the video in sections of ATI All-in-Wonder or Matrox TV cards. These multifunction cards are supported for output though.

Increased Processor Requirements

Some of the improvements to film detect since version 2.3.0 have increased the processor requirements. DScaler may not now run on slower hardware.

Warning

This program installs a temporary driver while it runs. This means that some of the code runs inside Ring0 along with the kernel. What this means is that if anything goes wrong this program can crash your whole system causing a BSOD in NT or a hanging 95/98. Please do not use kill task to stop DScaler except as a last resort.

If using a debugger then it it is very important that the program is allowed to shut down normally. If you use Stop Debugging while running the program you system WILL crash.

As a precaution sync the disks before running this program. Use the sync utility from http://www.sysinternals.com/ for whichever operating system you are running.

Authors

Thanks

Ini File Settings

Keyboard Shortcuts

Enjoy!


DScaler -- Frequently Asked Questions

DScaler Logo
FAQ
Last update: September 7th 2001

Introduction

Where can I find the latest FAQ ?

Here at http://www.dscaler.org/FAQ.htm

What is DScaler ?

DScaler is a piece of software that grabs analog, interlaced video, and deinterlaces it to make it a progressive scan feed then allows scaling to any resolution for use on your computer monitor or projector.

Analog, interlaced video is what devices like VCRs, laserdisc, and game consoles output.

What is so special about DScaler ?

Unlike most existing software for use with TV cards, DScaler implements sophisticated deinterlacing algorithms. Using such algorithms makes sure that each kind of video source is handled a different way. It provides the user with a level of image quality unknown to PC owners until now.

Some of the techniques are:

  • video source deinterlacing
  • inverse telecine detection: 2:2 (for pal movies) as well as 3:2 (for ntsc movies) pulldown
  • Automatic aspect ratio control
  • Judder elimination

The image quality resulting from those complex operations is high and allows some people equipped with data capable projectors to feed them with progressive scan images.

What is dTV ?

dTV is the old name for DScaler, we changed the name as people use dTV to refer to digital television and this was causing confusion. In the source and on the website you will still see references to dTV but please refer to the program as DScaler from now on.

History of DScaler

The whole thing started in July 2000. See Cliff Watson's post regarding the home theater computer history in "Who are the pioneers of htpc ?". Ali, one of the first French htpc addicts, was promoting a piece of software called BorgTV (aka bTV) that allowed him to deinterlace analog sources with a level of quality unknown at this time. Thanks to threads like " Not so bad analog video deinterlacing with htpc", people got interested in the subject. Among them was John Adcock.

He released a plugin for bTV that was doing realtime 2:2 pulldown for PAL movies that showed that deinterlacing of such sources was feasable in software (see " John Adock's great PALMovie plugin").

The lack of NTSC support in bTV made the implementation of the more complex 3:2 pulldown algorithm lead John to write his own application based on Multidec. Its name, based on its inspiration application, was dTV (see " First Version of NTSC/PAL TV deinterlacing program").

The first versions only had manual film pulldown selction. The next major breakthrough was when John implemented Mark Rejhon's 3:2 pulldown algorithm.

This proved that complex deinterlacing techniques could be done in realtime and without additionnal dedicated hardware. Since this time, more and more users (and coders) have joined the dTV community and are using it on their htpc rather than using external line doublers.

In may 2001, dTV got renamed to DScaler to avoid any misunderstanding with the growing Digital TeleVision issue.

See Authors for the main contributors and Thanks for a list of people who have helped make DScaler a success.

How much does DScaler cost ?

DScaler is free software, open-source, coded under the GNU GPL Licence.

What do I do if I want to pay for it ?

While the developers in no way oblige you to, we would suggest that you support Electronic Frontier Foundation by making a contribution here

We can't promise anything in return except to try to give a small preference to support requests, but you'll have our appreciation and know you've helped keep cyberspace free of barbed wire and bull***t.

Can I ship DScaler with machines I make ?
Can I redistribute DScaler ?

DScaler is released under the GNU GPL and as such you are free to redistribute DScaler provided you agree to also distribute the source code. Note that simple linking to our site is not enough. Also it would be nice to hear from anybody who is shipping this product as we can add a link to your site and keep track of who is using our software.

Where can I download DScaler?

Official releases are placed on DScaler's site, on the download page

From time to time the developers release alpha test versions, these version are often unstable but will have all the latest features. These versions are not recommended generally and are only supported via the developers mailing list. The test downloads can be found here

General issues

Should I use DScaler to deinterlace the output from my set-top dvd player ?

While it is feasible and works quite well (see the "DScaler Windvd challenge" in the screenshots section), home theatre PC's have shown the best results while using dvd decoding software along with a dvd-rom and a modern graphics card. However, there are people who find it easier to use with DScaler with an external DVD player.

Some people have found that DScaler does a better job with non-film DVDs (e.g. concert videos or DVDs of some television shows) and poorly coded DVDs (e.g. Anime) than the software players.

Note that most DVD players implement Macrovision copy controls, these can interfere with DScaler. For futher information see "What is the purple stripes issue ?" below

Software issues

Which operating system can I use DScaler on ?

Windows 95 ok uses VxD running in ring-0, may need ie 4.0 installed
Windows 98 ok uses VxD running in ring-0
Windows NT ?? may require hacked DirectX 5.0
Windows Me ok uses VxD running in ring-0
Windows 2000 ok uses sys running in ring-0
Windows XP ok uses sys running in ring-0
Linux no if you want to do a port contact us
OS/2 definitely no ;-)

What are all those deinterlace algorithms ?

Video Deinterlace (Bob)

This method is based on Gunnar Thalin's VirtualDub filter. If it detects weaving artifacts in the current image it uses bob to get rid of them. This method has a tendency to bob rather too much and gives poor results on fine static images.

Video Deinterlace (Weave)

Similar to Video Deinterlace (Bob), however this method has a tendency to weave on moving images.

Video Deinterlace (2-Frame)

This method uses the current frame and the last two to determine whether to bob or weave a given pixel. This gives better results on both stationary and moving images than the above two methods however it uses more CPU.

Simple Weave

This method just combines the most recent even and odd fields. This causes motion artifacts and is provided for comparison.

Simple Bob

This uses only the most recent field and fills the lines in between with interpolated pixels. This method has in may ways been superceded by Scaler BOB.

Blended Clip

The BLENDED CLIP Deinterlace method is designed mostly for experimentation by those interested in what works for video deinterlacing. When it is selected it will pop up a control panel with many controls to adjust various parameters. These all correspond to Blc... parameters in the [Deinterlace] section of the DScaler.ini file and are documented there. It is probably not the single best method for anything but it can be used to create custom deinterlace methods for special purposes. These can be saved in a separate ini file and invoked by a command line parameter when starting DScaler.exe. Somewhat CPU intensive

Scaler Bob

Uses the DirectDraw hardware bob feature (if available), this uses the current field and lets the video card scaler size the picture to fit the screen. Produces good results for fast moving images.

Even Fields Only
Odd Fields Only

These use only one field out of each pair and use hardware scaling. This reduces bob artifacts at the cost of loss of information. These were originally intended to be used with game consoles.

Adaptive Deinterlace

This method uses the amount of motion detected to select the best deinterlacing alogoritm. Currently by default it switches between 2-Frame and weave.

Greedy deinterlace method

The GREEDY Deinterlace method is designed to give good results on low motion video source, using less CPU than some others. Good on slower machines but it will give awful results on high motion video material like sports. Quite by accident, it can also do a decent job on poorly mastered 3:2 or 2:2 pull down film source material like some anime movies, regardless of low or high motion. Try it if you have a movie source that is not giving good results with normal Auto Pull Down processing.

Greedy 2 Frame method

This method tries to combine the best features of the 2-frame algorithm with the looking ahead ability of the greedy method. I find this methods works well on sports and other high motion material. With static images and low quality sources there may be unacceptable levels of bobbing.

3:2 Pulldown, Skip Field X

Mostly on NTSC format, on a 24-fps film material, the material is encoded as 48 fields (24 odd and 24 even). Each frame will be alternatingly played 3 and 2 times respectively. With regard to fields, the order played will be come: Odd, Even, Odd (of frame 1) and Even, Odd (of Frame 2), and so on. In order to create a pure progressive image (which is 1 frame of the 24-fps material), DScaler will only need to take the odd and even field, weaves them together, skip the next odd frame and wait until the next odd and even field arrives, weaves them together and put it out again. In the field sequence, out of every 5 field, 1 field can be skipped. That field that is skipped will be the number displayed on the pulldown Skip Field. If all the sequences are coming in as perfect as described, and DScaler detects it perfectly, the 3:2 pulldown method selected will always be set the same. If the PC is rather slow (dropping fields), or the sequence is altered (abruptly changing scenes), or DScaler's tolerance in comparison is exceeded, it will retry to lock again to the 3:2 pulldown, and might end up with a different field to skip.

2:2 Pulldown

PAL movies are made of sequences of 2:2 frames. Once such a sequence is detected, the Odd and Even fields are taken, weaved to form 1 frame of the 24-fps material, and displayed.

Can I remote control DScaler ? YES

Yes you can. DScaler is being developped mainly by people using it as an analog source scaler for their projector and they prefer for sure using DScaler from their remote on the sofa rather than from their desk ;-)

DScaler is thus filled with keyboard shortcuts for all main options so that you can do everything quickly.

We also suggest the use of Girder from Ron Bessems as the application of choice for remote controlling your computer.

Can I record video to my hard disk with DScaler?

Sort of. DScaler now handles basic recording and playback of specifically-formatted AVI files using a compression codec of your choice. The end goal being a "time shifting" feature (i.e. pausing of live TV) and not a generic video file processor. In other words, it handles only the video files that it creates itself for this purpose. This is all currently under construction.

DScaler isn't intended to be an all-in-one desktop video utility. The development team has chosen to concentrate on making it the best video processor it can be.

If you want to record video, there are lots of alternatives to choose from, such as:

  • VirtualDub, an open-source desktop video application, can capture as well as edit and post-process video.
  • ShowShifter for TiVo-like features such as an integrated program guide and pausing of live TV.
  • AVI_IO is a video recording application that specializes in keeping audio locked to video even in the face of dropped frames.

Of course, if you want to improve DScaler's video recording, there's nothing stopping you! That's what open source is all about.

Hardware issues

Can I use any vga card as a display device ?

This is what Mark Rejhon has to say about this:

"DScaler requires an AGP card. It is impossible to do on a PCI video card. DScaler uses massive amounts of *bidirectional* bus bandwidth: 250 megabits per second incoming bandwidth (from TV card) and about 500 megabits per second outgoing bandwidth (to videocard). This bus data firehose is not feasible on PCI bus, as PCI can reliably continuously transfer up to about 600-700 megabits per second *in one direction only* out of a possible 1056 megabits per second (132 megabytes per second) due to overhead. Try to go bidirectional, and framerate literally gets the death penalty!"

However, some users ahve reported that they are able to use their PCI card successfully and without dropped frames. In some cases however, frame rate goes down when higher and higher resolutions are tried.

Ian Darian reported I have an 8MB 3dfusion PCI on a BX mobo Celeron 566 64MB RAM 66MHz FSB, with Dynalink Magic TView (Conexant 878) and can only execute DScaler at 16 bit colour depth. When running a 1024x768 desktop, DScaler v1.9 with a 720x576 @ 50Hz PAL composite input gives 0 DFS in manual Video De-interlace mode for DScaler window sizes up to 848x629 (as determined from DScaler.ini) but 7+ DFS for window sizes even 1 pixel above either of these dimensions

At a minimum the display card must support YUY2 overlays. All newer cards support this.

Which capture card can I use ?

Almost any card (and that means A LOT) based of former Brooktree (now Conexant) chips including bt848/878/879 will work for video only. Why those ? These chips are easy to program (there has been A LOT of software based on those) and are very cheap. This means many manufacturers have (and are still) produced cards based on those chips.

Sound from the tuner is not always supported and adding this for a lot of cards is not a developement priority.

While we can't (and won't) claim "this card is the one you need", here are a few that have been sucessfully used by some users.

  • Zoltrix Genie TV http://www.zoltrix-int.com/products/video/8MMZXGENIE.htm
  • The WinTV series from Hauppage http://www.hauppage.com/html/products.htm
  • Guillemot maxi video 3 http://fr.guillemot.com/brand/gamme/video/mtvvidp3/mtvvidpci3.html
  • The Pinacle Studio PCTV http://www.pinnaclesys.com/ProductPage.asp?Product_ID=6

Take a look at the card list. This will never be complete so feel free to drop us an email reporting your experience with DScaler and your card. Also note that just because a card is on the list does not mean that it will work properly. Some features especially sound may not work correctly.

This list is originally based on the linux bttv driver on which the program was originally based.

Can I use my existing <whatever> card's video input ?

Probably not. DScaler currently only supports the Brooktree/Conexant chipset (see previous question). Supporting others chipsets, while feasable, means some hard work and some solid knowledge of those chipsets. And unfortunately, no recent vga card with video-in feature includes Brooktree/Conexant chipset. Gx00, Asus Deluxe, ATI All-in-Wonder etc... are thus not supported for video input at the moment.

If you have some programming knowledge regarding the grab chipsets used in those card, you might want to help us. See the "How can I help" section.

Can I use more than one video input ?

Not currently although it is a work in progress.

However, you can easily use your a/v receiver to switch between multiple video inputs. Connect the monitor out of your equipement to your grab card and all your video devices to video in connectors.

Also, some cards come with one, sometimes two composite input that you can use separately from within DScaler. An svideo connection is also quite common, allowing you to switch easily from 2 or 3 sources.

Troubleshooting

I have problems with sound?

Note that support for sound from cards internal tuners is not a priority for most of the developers of DScaler. Almost all the developers use some kind of external TV tuner and bypass the sound issue. Having said that we will be pleased to accept fixes for any card but are not in a position to add support for new cards ourselves.

My picture jumps up and down?
I get dropped frames?

Both problems seem to be caused by not having a powerful enough machine to run everything all at the same time. The things that use up a lot of CPU time are 2-Frame, Blended Clip & Greedy deinterlacing and automatic pulldown detection. Try moving to another pulldown method or switching off autodetection. The other alternative is to buy a faster PC ;-))

There is now a setting in Select Hardware which allows you to tell DScaler how fast your PC is. Try selecting alower speed if you get either of these problems.

What is this "purple stripes" issue ?

When feeding some analog sources to the combination grab card/DScaler, horizontal colored lines appear on the image.

See this picture where macrovision has been added to the video signal. The same video signal without the macrovision protection is perfectly stripes-free.

This phenomenom seems to be more visible when a macrovision protected video signal is fed to some grab cards but this has been reported (although less visibly) on unprotected material.

Other examples of this phenomenon can be seen here ;
avs:MacroVision side effect
avs:DScaler Purple Stripes - is this capture card dependent?

Some information from the Dvd Faq ;

"Macrovision adds a rapidly modulated colorburst signal ("Colorstripe") along with pulses in the vertical blanking signal ("AGC") to the composite video and s-video outputs. This confuses the synchronization and automatic-recording-level circuitry in 95% of consumer VCRs. Unfortunately, it can degrade the picture, especially with old or nonstandard equipment. Macrovision may show up as stripes of color, distortion, rolling, black & white picture, and dark/light cycling. Macrovision creates problems for many line doublers."

WARNING This has been reported only when feeding, for test purposes, a dvd player to the computer. Problems on other type of sources have yet to be shown.

So in common cases, you don't have to worry about this.

Despite having a very powerful system, I still get some dropped frames?

Some people experienced some dropped frames (signs of a machine that has problems keeping up with the workload of DScaler) even on powerful systems. An hypothesis is that some motherboard agp speed issue might be the cause of such behavior.

JackB reported We looked at his BIOS settings and the only major difference is that his had a 4X AGP mode and my MB only has a 2X AGP mode. <snip> We put my video card, a GeForce2 MX, in his(slower supposedly)system and it ran 0 DFS. So it's not the MX throughput that's the problem. So, I'm down to it's my motherboard not being up to speed in either AGP acceleration or I have some settings set incorrectly

I get "overlay update" errors

Sometimes you get this error message
Error calling overlay update. D:/source/deinterlace/DScaler/other.c at line ???
We don't have any full explanation of the problem but it happens when resizing DScaler or making it go from fullscreen to window mode. Also the color depth, frequency and size of the desktop might be related.

What is the Crashlog.txt file, and where do I find it ?

If one of the developers asks you for a crashlog.txt file you should find this file in the DScaler install directory. This file contains useful information that can be used to find bugs more easily. If you can't find one when you've been asked for one don't worry just inform the developer that one was not created. Also if you have this file but are not observing problems then don't worry.

I still have a problem?

See Support for how to get support for DScaler.

How can I help ?

Testing

More and more people are giving DScaler a try. Why don't you?
We'd like to know about your experience with it. What does (not) work? What can be improved, what features you would like. All feedback is useful.

Please report bugs on the AV Science Forum after checking (using the search feature) that the problem has not already been reported. Each bug report should include the hardware you're using, especially video card, grab card and processor type and speed.

Coding

Any help is welcome. Despite including some very complex code, there are a lot of features in that are simple or that could be easily implemented without having to wade through all the assembler.

If you've got an idea, or feel like to trying to implement something that is already in the Tasks list, join the mailing list. Some information to get you started is on the developers page.


DScaler - Installation & Setup

DScaler logo Installation & Setup

Hardware Prerequisites

See the supported cards page to find out if your video capture card is supported. Please note that currently, your performance may degrade significantly if your CPU is slower than 400 MHz or your video card is not AGP. In addition, when using a system that is borderline fast enough, DScaler is sensitive to system tray applications and active services.

Installation

Remove any previously installed version of DScaler. For versions greater than 4.0, you must uninstall the program using the control panel. For versions less than 4.0, delete the entire directory in which DScaler is located.

Download the latest installation file. Double-click on the file to launch it, and then follow the wizard prompts to install DScaler in your preferred location.

Getting It Working

1. Double-click the DScaler icon that has been placed on your desktop during the installation process.

2. You will be presented with a screen requesting general hardware configuration information. Specify the processor speed, and preferred default from the dialog box. Then choose whether or not you would prefer to use the full CPU while DScaler is running. Using the full CPU helps ensure that the whole processing procedure runs as smoothly as possible and is entirely normal. When necessary, DScaler will give up control to other applications that are running.

Press "OK".

3. Choose the make and model number of the capture card that you have in your computer system and the tuner that your card uses. DScaler attempts to autodetect both pieces of information, but many capture cards do not provide for autodetection. If this is the case with your card, you may need to look at the markings on the capture card for the make and model number and the silver tuner box on the card for tuner make and model number.

DScaler provides for use of multiple capture cards in one system. You will be prompted to specify the capture card and tuner for each suitable capture card in your system.

4. Select the input source that you would like to use. Please note that each input source can be chosen by using a corresponding hotkey. For instance, in the screen below, you can see that the hotkey for Composite input is Ctrl+Alt+F2.

5. Select video format standard that applies for your source. Unless configured otherwise, DScaler will attempt to autodetect the format that is used by the connected source.

6. Select the audio source that accompanies your video source.

7. Select the audio standard that applies to the audio source chosen above.

For more information about the advanced features available via the DScaler.ini file, please see the .ini documentation.

What if That Doesn't Work?

See the support page


DScaler -- Keyboard Shortcuts

DScaler Logo Keyboard Shortcuts

TV Tuner

Channel Up | PgUp
Channel Down | PgDn
Previous Channel | Ctrl+BackSpace
Channel Setup | Home
Volume Up | +
Volume Down | -
Mute | M

Miscellaneous

Open file | Ctrl+O
Exit | Alt+F4
Toggle Menu | Tab
Toggle Status Bar | S
Toggle Show Cursor | Ctrl+Enter
Full Screen | Alt+Enter
Return From fullscreen | Esc
Toggle Keyboard Lock | Ctrl+Shift+L
Show OSD | Enter
Hide OSD | BackSpace
Pause | P
Take snapshot for debugging | Shift+L
Reset Statistics | R
Help | F1

Video Input Select

Tuner | Ctrl+Alt+F1
Composite | Ctrl+Alt+F2
S-Video | Ctrl+Alt+F3
Composite via S-Video | Ctrl+Alt+F4
Input 5 | Ctrl+Alt+F5
Input 6 | Ctrl+Alt+F6
Input 7 | Ctrl+Alt+F7

Audio Input Select

Mute | M
Tuner | Ctrl+Shift+F1
MSP/Radio | Ctrl+Shift+F2
External | Ctrl+Shift+F3
Internal | Ctrl+Shift+F4
Disabled | Ctrl+Shift+F5
Stereo | Ctrl+Shift+F6

Video Format Select

PAL-BDGHI | Shift+Alt+F1
NTSC | Shift+Alt+F2
SECAM | Shift+Alt+F3
PAL-M | Shift+Alt+F4
PAL-N | Shift+Alt+F5
NTSC Japan | Shift+Alt+F6
Pal 60 | Shift+Alt+F7
NTSC 50 | Shift+Alt+F8
PAL NC | Shift+Alt+F9

Deinterlace

Loop on video modes (first to last) | Space
Loop on video modes (last to first) | Shift+Space
Search and lock mode | Ctrl+Shift+Space
Toggle automatic film/video detection | Ctrl+Space

Picture Adjustments

Brightness Down | B
Brightness Up | Shift+B
Contrast Down | K
Contrast Up | Shift+K
Color Down | C
Color Up | Shift+C
Saturation U Down | U
Saturation U Up | Shift+U
Saturation V Down | V
Saturation V Up | Shift+V
Hue Down | H
Hue Up | Shift+H
Overscan Down | O
Overscan Up | Shift+O
Pixel Width Down | W
Pixel Width Up | Shift+W
BDelay Down | D
BDelay Up | Shift+D
VDelay Down | E
VDelay Up | Shift+E
HDelay Down | Q
HDelay Up | Shift+Q
Noise Filter Toggle | N

Aspect Ratio Control

Automatic Detection ON | A
Automatic Detection OFF | Shift+A
Toggle Automatic Detection | Ctrl+Shift+A
Detect from Current Image | `
Toggle Image Clipping | Ctrl+P
Window on Top | Ctrl+Numpad-Up
Window centered | Ctrl+Numpad 5
Window on Bottom | Ctrl+Numpad-Dn
Toggle Image Bouncing | Ctrl+B
Toggle Orbiting | Alt+O

Advanced Aspect Ratio Control

Stretch to Window | Ctrl+0
1.33 | Ctrl+1
1.44 Letterboxed | Ctrl+7
1.55 Letterboxed | Ctrl+8
1.66 Letterboxed | Ctrl+2
1.78 Letterboxed | Ctrl+3
1.85 Letterboxed | Ctrl+4
2.00 Letterboxed | Ctrl+5
2.35 Letterboxed | Ctrl+6
1.66 Anamorphic | Ctrl+Shift+2
1.78 Anamorphic | Ctrl+Shift+3
1.85 Anamorphic | Ctrl+Shift+4
2.00 Anamorphic | Ctrl+Shift+5
2.35 Anamorphic | Ctrl+Shift+6
Custom (from INI file) | Ctrl+9

Configure Aspect Ratio Of Display Screen

Same as Computer Resolution | Alt+0
1.33 - TVs, monitors | Alt+1
1.66 | Alt+2
1.78 - HDTV displays | Alt+3
1.85 | Alt+4
2.00 | Alt+5
2.35 | Alt+6
Custom (from INI file) | Alt+9

Zoom

Zoom In | Shift+Z
Zoom Out | Z
Shift Image Left | Cursor Left
Shift Image Right | Cursor Right
Shift Image Up | Cursor Up
Shift Image Down | Cursor Down

Teletext

Toggle Mode | T
Mixed Mode Toggle | Shift-T
Next Page | Cursor Right
Previous Page | Cursor Left
Next Subpage | Cursor Down
Previous Subpage | Cursor Up
Search VideoText | Ctrl-F
Search Next | F3
Search Previous | Shift-F3

TimeShift

Record | Shift+R
Play | Shift+P
Pause | |
Stop | Shift+S
Fast Forward | }
Fast Backward | {
Next Video Clip | >
Previous Video Clip | <

Calibration

Left Player Cropping Down | Shift+Cursor Right
Left Player Cropping Up | Shift+Cursor Left
Right Player Cropping Down | Ctrl+Cursor Left
Right Player Cropping Up | Ctrl+Cursor Right
Overscan Down | O
Overscan Up | Shift+O
Show OSD | Enter
Hide OSD | BackSpace

Stills

First file in playlist | Ctrl+Home
Last file in playlist | Ctrl+End
Previous file in playlist | Ctrl+PgUp
Next file in playlist | Ctrl+PgDn
Take Still Picture | L
Show Informations about Still Picture | I


DScaler -- User Support

DScaler Logo User Support

Currently, user support is provided through the new DScaler Support Forums. Please do a forum search for your particular question to ensure that it has not been asked and answered already. If you believe that you have identified a previously unknown bug, please post it in the DScaler bugs page at SourceForge. Please check to make sure that the bug has not already been reported and try to give as much information as possible when describing the bug.

In the past, most support was provided through the AVS Home Theater PC Forum, the largest such forum on the internet and a great place to pick up information and advice. DScaler had its genesis on the AVS Forum and many DScaler developers visit often. For general home theater PC discussion, we continue to recommend AVS Forum highly.

Because of the way DScaler is developed, some parts of it are much more stable than others and indeed some parts of the code are considered experimental. The parts of the code currently considered experimental are:

  • Time-shifting
  • Closed Captions
  • DScaler DirectShow Filter
  • DirectShow Support
  • Still Support
  • Patterns

Please do not report bugs or support questions in these areas to the forum.

Additionally, there is the ongoing problem of sound support, please read this explanation of Sound Issues before posting issues relating to sound in the AVS Forum Sound Issues Thread.

Support is given by the helpful members of the community, whether they be involved in this project or not. However, some people that may appear often to answer user questions and who are affiliated with project include:

User support
Dan Schmelzer (dschmelzer)
Yvon Quere (Yvonus)
Jason Castle (jcastle)
(Slithy Tove)

Of course, most of your questions will be answered by the DScaler developers.


DScaler -- Sound Issues

DScaler Logo Sound Issues

With a new public release due out shortly and lots of problems relating to sound on the forum I thought I'd take the time to explain DScaler's support for sound both now and going forward.

The bt848 chip is very flexible in terms of what it can do for video and there is very little leeway for card hardware designers to muck about with the video end. This is why it is usually very easy to add support for new cards based on the bt8x8 chips.

For sound things get much more complicated.

The Different ways sound is supported

  1. Mono sound from the tuner is passed to the bt chip. If you have a mono card then this way should work. I will try and resolve issues related to sound on mono cards.

  2. NICAM Stereo (Europe) MSP Chip. These cards have an MSP chip and some support is in DScaler for these cards. I have no test setup for this but accept patches for changes to get NICAM working. I have reports that it works on some European NICAM broadcasts. I think it doesn't work on UK NICAM.

  3. BTSC Stereo (US) MSP Chip. There is currently no support for these cards. After a bit of research it seems that these cards will only play stereo when in a mode that is not implemented in the bttv code that the sound support was taken from. This will be addressed in later versions. There is already a large backlog of changes required but this is on the list.

  4. Other. Some hardware manufacturers have used other chips and ways of supporting sound. These are not supported now and probably won't be unless someone else writes or ports the code. Patches to support specific cards will be accepted once I have implemented a new design for sound support. This should make it easier to add support for new cards.

Workarounds

The most basic workaround is not to use the onboard tuner :-))

This is one used by most of the users of DScaler and explains why sound tends to take a back seat in priority.

Sometimes running the supplied TV tuner application before or after DScaler can help. Note that if you are using an Hauppague card then Dscaler 3.1.0 will include a card type of "Standard bt848 (No init MSP)" that will not touch the MSP on startup which should make the card behave as it did in version 2.3.0.

Using the Mixer

DScaler now also supports controlling the mixer and can mute lines when channels are changed or when DScaler exits.

The mixer set dialog can be accessed from Hardware/Audio Mixer Setup.

It allows you to specify which mixer lines are to be controlled by DScaler and which ones are to be unmuted when a given input is selected.

If "Reset Mixer to Initial Settings on Exit" is selected then it returns the mixer to the state it was when Dscaler started, if off then all the mixers lines that have been selected are muted on exit.

Known Issues

The STB TV cards have a different sound chip which means that they fall into category 4 in board design and that support for them will not be added by the main DScaler team. We would welcome any developers who want to add support for these cards. The code for the support of these cards is in the bttv driver but porting that code to DScaler is not trivial.

Still got a problem

See this Sound Issues post on AVS for an up to date picture of sound issues.


DScaler -- Authors

DScaler Logo DScaler Authors

John Adcock

John is the founder and maintainer of the project. He did almost all of the work cleaning, translating and legalizing Multidec to create the first versions of dTV. He coded the world's first real-time software 3:2 pulldown software deinterlacer (based on Mark Rejhon's algorithm article). He has also designed several video-material deinterlacers that are superior to those in virtually any other any PC-based video software product.

Mark Rejhon

Mark authored the 3:2 pulldown algorithm that forms the basis of the algorithm implemented into DScaler by John Adcock. He maintained the project for three months and during that time made a huge contribution to the project. Although Mark is less active on the project now he still pops up regularly to offer sage advice and to share his enormous knowledge and passion for the perfect image.

Steve Grimm

Steve contributed major enhancements to the film detection code including better automatic switching between video mode and 3:2 pulldown mode, and handling of material that has bad 3:2 pulldown. Steve also made significant modifications to the deinterlacing algorithms in version 2.0.0 creating the two frame algorithm. He also worked on an early version of a 3:2 pulldown deinterlacing algorithm. In addition, he is the author of the aspect ratio auto detection code which was included in version 1.9.

Tom Barry

As part of Tom's ongoing mission to use up all the world's CPU power he is behind many of the video deinterlacing plug-ins. Tom has been part of the project almost since the beginning and has contributed too much to summarize quickly.

Michael Samblanet

Michael is continuing to upgrade his aspect ratio control code.

Michael Eskin

An engineer working at Conexant Systems Inc., the makers of the 8x8 series chips that DScaler runs on. He basically meditates peace between the DScaler software and the 8x8 video capture hardware. When any of us fails on a nasty 8x8 issue, he takes over and gets the job done from time to time. One of his several valuable contributions include a bug fix to make Macrovision-encoded sources watchable in DScaler, without purple-lines interference.

Laurent Garnier

In his time off from being confused with the similarly named French DJ, Laurent has been very busy adding some of the coolest new features in recent releases: auto-calibration, the OSD (On Screen Display), WSS (WideScreen Signalling), stills source and patterns.

Torbjörn Jansson

Added the new generic settings dialog and has provided many bug fixes

Eric Schmidt

Eric's major contribution has been the timeshifting code.

Lindsey Dubb

The brains behind the new Temporal Comb Filter and the old game plug-in.

Jochen Trenner

Provided improvements to the MSP code for European stereo systems as his alter ego "Hermes Conrad".

Mike Temperton

Is responsible for the many improvements to Teletext.

Muljadi Budiman

Added support for overlay colour controls.

Rob Muller

Rob has quickly established himself as a core part of the team. He has fixed problems all over the code and also provided the new setup routine.

Atsushi Nakagawa

Atsushi added support for Philips' SAA7130/4 based cards. He is now one of the driving forces behind the project.

Please see the Thanks file for an incomplete list of the many others who have contributed time and effort.


DScaler -- Thanks

DScaler Logo Thanks

The DScaler team would like to express their gratitude to:

  • All the authors who have contributed code to the project.
  • Expresso for creating multidec the foundation of DScaler. MultiDec's thanks.
  • Mathias Ellinger for the driver from FreeTV on which DScaler's driver is based.
  • Daniel Schmelzer for his hard work creating and updating the website.
  • Yvon Quere for creating and updating the FAQ.
  • Yvon and Ali for finding, using and promoting bTV and encouraging us to see HTPC's as video processors.
  • Jason Castle for updating the todo and bugs pages.
  • Borg, creator of bTV, for writing the first ever intelligent computer deinterlacing program--the inspiration for this project.
  • All at the AVSForums for your encouragement and help. The HTPC forum is easily the best group on the internet.
  • The authors of VirtualDub for the the idea behind the PAL detection algorithm.
  • Gunnar Thalin for his area based deinterlacing plug-in which was the basis for the Video Bob deinterlacing method.
  • Steaphan Greene, Øyvind Aabling, Octavian Purdila, Vladimir Dergachev and Christian Lupien—the GATOS developers—for the original screen capture code.
  • Jim Ferguson for his ground breaking YXY tool, the model and benchmark for aspect ratio support.
  • Gerd Knorr for the "v4l2/OSS device driver for saa7130/34" on which DScaler's saa713x support is based. And for providing details on the saa7130/4 chip.
  • Péter Gulyás for his contributions in saa7134 Nicam audio fixes.
  • Erik Språng for the new DScaler logo.
  • Phat Phreddy for the new DScaler domains.
  • Tom Fojta for the Czech teletext code page.
  • John Isar for the Greek teletext code page.
  • Eduardo José Tagle for the PAL-NC patch.
  • Robin Zalek (aka Bob) for the new icon.
  • Everybody on the deinterlace project mailing list.


GNU General Public License - GNU Project - Free Software Foundation (FSF)

DScaler Logo GNU General Public License

Table of Contents

  • GNU GENERAL PUBLIC LICENSE
    • Preamble
    • TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    • How to Apply These Terms to Your New Programs

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA  02111-1307, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

  • a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
  • b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
  • c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

  • a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

one line to give the program's name and an idea of what it does.
Copyright (C) yyyy  name of author

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.  This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.


DScaler -- DScaler Features

DScaler Logo | DScaler Features
This section offers help for some of DScaler's more important features.


DScaler -- Program List

DScaler Logo Program List Dialog

How do I find my channels?

For most people setting up the channels should be as simple as selecting a suitable entry from the combo box in Settings, deciding what to set the "Keyed numbers are channels, not positions (US Style)" flag to and pressing scan.

What on earth does "Keyed numbers are channels, not positions (US Style)" mean?

There are basically two ways of thinking about channels. The "US" way where you have a list of frequencies and you refer to each channel by it's position in the list of frequencies or the "European" way where you set up your channels one by one.

With this switch on when you scan the system adds every possible channel to the list and sets the active flag on if the channel has video.

With this switch off when you scan the system only adds channels if the frequency has video.

If you think you can explain this better please let the DScaler team know. We are always on the lookout for better help.

What do all these Controls Do?

The calibration is a procedure using test patterns which allows to find the best video settings for the capture card.

Control | What it Does
Name | Sets the name of the channel, will be shown on eth menu and OSD when the channel is selected.
Frequency | The frequency the tuner is set to.
Set | Sets the tuner frequency to whats in the frequency box
The double arrows thing next to Set | For fine tuning
Format | Sets the format of the channel, for most people this will be the same as the tuner default.
Mute | Mutes audio while doing the tuning.
Clear List | Deletes all your channels ready for a rescan of if you've messing thing up.

There is no list suitable for where I am?

You could try the new Full Frequency Scan option from the frequencies combo box. This will take a while but should find all the channels.

Alternatively goto the support forum and see if anyone can help you get hold of one.

I want to give you a new list of Frequencies?

Go to the support forum and let us know.


DScaler -- Aspect Ratio

DScaler Logo Aspect Ratio

DScaler supports very flexible Aspect ratio control.

The first step is to set up the aspect ratio of your output device. As most display devices use square pixels the DScaler's default is to use the aspect ratio of the screen resolution you are using. If you are not using square pixels (e.g. you have a Panamorph attched to your projector) you must manually select the aspect ratio of the display device using the "View"/"Aspect Ratio of Display Screen" selection list. Normally the screen aspect ratio does not need to be changed once you have set it up.

Next you need to tell DScaler what format the incoming video is in. The most common types are listed at the first level of "View" menu. They are:

  1. 4:3 Fullscreen - This is the default type. Use this type for most TV broadcasts, Fullscreen Laserdiscs and 4:3 DVDs.
  2. Letterboxed - Use this type for most letterboxed TV film broadcasts, Letterboxed Laserdiscs and letterboxed non-anamorphic DVDs.
  3. 16:9 Anamorhic - Use this type DVD players and Digital TV boxes outputting anamorphic pictures. Even on a 4:3 screen best quality is obtained by using anamorphic features on widescreen material.
  4. Square Pixels - Use this type for most still or movie files.

There is also a set of more specific input formats availiable off the "View"/"Advanced Image Aspect Ratios" menu.


DScaler -- Calibration

DScaler Logo Calibration

What is Calibration ?

The calibration is a procedure using test patterns which allows to find the best video settings for the capture card.

DScaler is able to analyze certain test patterns from commercial DVD and then adjust the video settings of the capture card so that the output signal from the capture card is the closest as possible with the real content of the test pattern stored on the disc.

How does it work ?

Types of test pattern

There are three types of test patterns used by DScaler :

  1. test patterns that contains only range of grey including black and white,
  2. test patterns that contains only generic colors (red, green, blue, yellow, cyan, magenta, ...),
  3. test patterns that contains a merge of the two precedent types.

the first type of test pattern is used to adjust only brightness and contrast.
The second type of test pattern is used to adjust only color and hue.
The third type of test pattern allows to do a full adjustment of all video settings.

Without a test pattern of the third type, the user has to do the calibration in two steps :

  • first adjust contrast and brightness using a test pattern contaning range of gray,
  • second adjust color and hue using a test pattern containing generic colors.

Procedure

The user has to do the following actions :

  1. play one of the referenced test patterns in his player (laserdisc, dvd, ...),
  2. press pause with the remote control to be sure to have the same signal during the calibration,
  3. select the corresponding test pattern in the DScaler Hardware menu,
  4. start a manual calibration and adjust your player left and right cropping to have the drawn analyzed zones correctly centered. This must be done only the first time you use this player for calibration. When it is done, stop the calibration.
  5. start the calibration choosing between a manual calibration and an automatic calibration,
  6. if a manual calibration was chosen, adjust the different video settings so that the values on the left and right are the lowest possible, meaning the digitized image is as close as possible as the analog original,
  7. Stop the calibration when finished.

The video settings must be adjusted in this order :

  1. brightness,
  2. contrast,
  3. color (saturation U + saturation V),
  4. hue.

Manual calibration

During a manual calibration, the user must adjust the different video settings using the "Video adjustements" dialog box or the shortcut keys.

Just after starting a manual calibration, all analyzed zones of the test pattern are drawn with a (black or white) rectangle. You must verify that those zones are correctly centered with the content of your test pattern. All consumer players crop a little the video signal at left and at right. Use the shortcut keys to define the correct left and the right cropping done by your player. You can adjust the overscan used during the calibration too, but this overscan should be normally set to 0. With a correct value for those three parameters, the drawn rectangles should be correctly placed in the video signal.

An OSD is automatically displayed to help the user to decide what to adjust. The user can show and hide this OSD using Enter and Backspace keys.
On the left side ; "delta". Difference in RGB colorspace between the reference values and the ones after the grab process.
On the right side ; same as what is on the left side, but with YUV colorspace.
In the middle ; same info but with a text compound of stars which summarizes the result; from one star (very bad) to five stars (very good).

Depending on what setting the user is currently tuning, he will work mainly with :

  • black bars for brightness,
  • white bars for contrast,
  • blue bar for saturation U,
  • red bar for saturation V,
  • cyan and magenta bars for hue.

Automatic calibration

During an automatic calibration, the user has nothing to do. Just wait for DScaler to find the best settings. An OSD is displayed allowing to see the progress of the operation, and analyzed zones used for the calibration are drawn in video signal.
At the end, the user can see the new video settings, and a quality indicator for each analyzed zone of the test pattern shows how good (from one to five stars) is the card calibration for this zone. He is asked to confirm if he wants to keep those settings. If he responds "No", the video settings before calibration are restored.

Parameters

All those parameters are defined in the section "Calibration" of the ini file.

Setting | Default | Description
SourceOverscan | 0 | This is the overscan to be used during calibration. This value must be set to 0, except in very particular cases.
LeftPlayerCropping | 8 | This value defines the left cropping done by the player. It is a n/1000 value. 8 means a crop of 0,8% of the video signal.
RightPlayerCropping | 16 | This value defines the right cropping done by the player. It is a n/1000 value. 16 means a crop of 1,6% of the video signal.
ShowRGBDelta | 1 | This boolean defines if the delta in RGB colorspace have to be displayed in OSD during manual calibration.
ShowYUBDelta | 1 | This boolean defines if the delta in YUV colorspace have to be displayed in OSD during manual calibration.

What do you need ?

You need at least one of the referenced media with patterns and a player connected to the capture card to play the test patterns.

What are the referenced test patterns ?

DVD Collector Les Années Laser 2000

title 36 chapter 1

Copyright (c) Les Années Laser
title 31 chapter 1

Copyright (c) Les Années Laser

THX Optimode (Pal)

Monitor Performance test pattern

Copyright (c) Lucasfilm Ltd.

You can find this test pattern on several Pal THX DVD. For instance, "Les Rivières Pourpres" in region 2.

For more informations about the THX test patterns, you can see here.

THX Optimode (Ntsc)

Monitor Performance test pattern

Copyright (c) Lucasfilm Ltd.
Tint Color test pattern

Copyright (c) Lucasfilm Ltd.

You can find those test patterns on several Ntsc THX DVD. For instance, "Toy Story Ultimate Toy Box" in region 1.

For more informations about the THX test patterns, you can see here.

DVD Video Essentials

title 18 chapter 2

Copyright (c) Joe Kane Productions Inc.
tile 15 chapter 5

Copyright (c) Joe Kane Productions Inc.

For more informations about the Video Essentials disc, you can see here.

DVD AVIA

title 1 chapter 7

Copyright (c) Ovation Software
tile 4 chapter 4

Copyright (c) Ovation Software

For more informations about the AVIA disc, you can see here.


DScaler -- Closed Captions

DScaler Logo Closed Captions

DScaler has basic support for Closed Captions.

Closed Captions exist on:

  1. TV broadcasts in countries with 60Hz TV signals
  2. Video Tapes with the Q symbol
  3. Laserdiscs
  4. Some DVDs

To enable closed captions first turn on VBI capture by ensuriing the "Datacasting"/"Capture VBI" menu item is ticked. Then selecting the CC type to be displayed from the "Datacasting"/"Closed Captions" list. Normally you will want CC 1.

To switch closed captions off select "CC Off" from the "Datacasting"/"Closed Captions" menu.


DScaler -- Film Detection

DScaler Logo | Film Detection
DScaler has advanced film detection methods that are switched on by default. Film detection can be further improved on faster machines by selecting "Include Chroma in Detect".


DScaler -- Still

DScaler Logo Still

DScaler is now able to produce a video stream from a still file. This type of source is not interlaced, so the deinterlace mode is irrelevant for this type of source, but you can use all the available filters as you do for all other video sources.

They are three different still sources in DScaler, and a virtual playlist (a playlist is not necessarily attached to a file) is associated to each of them :

  • Still : contains all the still files opened by the user
  • Patterns : contains all the pre-defined test patterns
  • Snapshots : contains all the stills taken during the current DScaler session

Each time the current DScaler source is one of these still sources, the menu "Playlist" is available in the menubar.

Displaying a still

DScaler can be used to display stills directly in the graphic card overlay. DScaler supports most of JPEG and TIFF files.

A DScaler new file format has been created too. It is used to describe test patterns. The test pattern is generated in the graphic card overlay according to its description when this file is opened in DScaler.

To open a new still file, select the item "Open file..." in the menu "Sources". The selected file, if supported by DScaler, will be added to the virtual playlist associated to the "Still" source and will be displayed.

Taking a still

DScaler can be used to take a still of what is currently displayed by DScaler.

To take a still, select the item "Take One Still Picture" in the menu "Actions", or use the "L" shortcut.
You can use a particular mode to take stills periodically, that is every <n> seconds. The time to wait between each still is defined in the still settings. To launch the process, select the item "Take Periodic Still Pictures" in the menu "Actions"; to stop the process, select it again.
Finally, there is another mode that allows you to take <n> consecutive stills. The number of stills to take is defined in the still settings. With this mode, the stills are stored in memory and are not saved directly in a file. That is necessary to avoid dropped fields and to have really the consecutive pictures of a video stream. To do that, select the item "Take Consecutive Still Pictures" in the the menu "Actions".

When you take a still, depending on a setting you can adjust, either the still is stored in memory and you can save it in a file later, or a file is automatically created in the DScaler main directory or in the directory you specified in your settings. The following rule is applied to define the file name :
TV<yyyy><mm><dd><hh><mi><ss><cc>.<ext> where :
<yyyy> is the current year, <mm> is the current month, <dd> is the current day
<hh> is the current hour, <mi> is the current minute, <ss> is the current second
<cc> is a counter between 00 and 99 allowing 100 captures in the same second
<ext> is tif or jpg
The same rule is applied when saving a still that is currently only stored in memory (the date and time used will be those when the still was taken and not those when you save the file).
A particular setting allows you to use a different file naming, and always override the same file when taking stills : TV.<ext> where <ext> is tif or jpg.

You have a direct access to all the stills taken during the current DScaler session as they are all grouped in a virtual playlist. Select the "Snapshots" source in the menu "Sources" to have a direct access to these stills.

You can choose between different file formats when taking a still :

  • TIFF with RGB colourspace : a conversion from YCbCr colourspace to RGB colourspace is applied but no compression
  • TIFF with YCbCr colourspace : no colorspace conversion neither compression is applied
  • JPEG : a JPEG compression is applied

Warning: in one side, the format TIFF YCbCr is the best as it takes a perfect copy of what is in the overlay and you can restore exactly the same content later; in another side, this format is not supported by lots of graphic software. So this format has to be avoided if you want to share this file with other people.

When a still taken by DScaler is displayed in DScaler, you can use the keyboard key "i" to have information about the DScaler context when this still was taken. These information are displayed using OSD.

The following settings can be adjusted; they are all defined in the section "Still" of the ini file.

Setting | Default | Description
Format of saving | 0 (TIFF RGB) | Format of saving: defines the file format used when taking stills. The possible values are 0 (TIFF RGB), 1 (TIFF YCbCr) or 2 (JPEG)..
JPEG quality compression | 95 | JPEG quality compression: defines the quality factor used when creating a JPEG file. It must be a value between 0 and 100. Higher is the value, higher is the picture quality and bigger is the file size.
Saving path for stills | DScaler directory | This string defines in which directory are saved the produced still files.
Save in the same file | OFF | Set it to 1 (ON) to bypass the normal file naming and use always the same file name when taking stills, or set it to 0 (OFF) to have the normal file naming.
Delay between stills | 60 seconds | Time in seconds to wait between each still when using the mode "take cyclic still pictures".
Number of consecutive stills | 20 | Number of stills taken when using the mode "take consecutive still pictures".
Maximum memory usage for stills | 64 Mo | Maximum quantity of memory in megaoctets used by the software to store stills.
Keep original ratio | OFF | Set it to 1 (ON) to keep the original ratio of the video source for the still, or set it to 0 (OFF) to do no resizing and take exactly what is in the video card overlay.
Stills in memory | OFF | Set it to 1 (ON) to take the stills in memory and defer the creation of the file, or set it to 0 (OFF) to immediately create the file.
OSD when taking a still | ON | Set it to 1 (ON) to have OSD information when a still is taken, or set it to 0 (OFF) to have no OSD information.

Playlists

DScaler allows to load and define playlists. A playlist is a set of still files defined in a text file with the extension ".d3u". Each line of such a file defines the path to a file which has to be a supported still file in order to be readable by DScaler.

To open a new playlist file, select the item "Open file..." in the menu "Sources". All the files contained in the selected playlist file will be added to the virtual playlist associated to the "Still" source, and the first file of the loaded playlist will be displayed.

To create and save a new playlist, you can either create manually the playlist file with a text editor, either load all the files you want to include in the new playlist and then save the current virtual playlist as a playlist file. To save the current virtual playlist as a playlist file, select the item "Save As ..." in the menu "Playlist".

The menu "Playlist" allows to navigate through the different files of the current virtual playlist : "Previous", "Next", "First" and "Last" allows to jump to the previous, the next, the first or the last file in the playlist. The sub-menu "Files" gives a direct access to all the files in the playlist. Items which are greyed in this sub-menu are files that DScaler is not able to read.

When the current still is only saved in memory and not yet saved in a file, it is possible to save it in a file using the menu item "Save". "Saved All" does the same thing but for all the files in the current virtual playlist.

The menu "Playlist" allows to change the order of files in the virtual playlist : "Up" and "Down" allows to shift up or down in the playlist the current displayed file.

To close the current displayed file and suppress it from the virtual playlist, select the item "Close" in the menu "Playlist". You can even close all the files of the virtual playlist by selecting the item "Close All" in the same menu.

Slide show

When the current virtual playlist contains several stills, it is possible to launch a slide show. You have only to select the item "Slideshow" in the menu "Playlist". A cyclic slide show will then be executed through all the files in the playlist, starting from the current displayed file. You can stop the slide show at any time by selecting again the item "Slideshow".

The following setting can be adjusted; it is defined in the section "Still" of the ini file.

Setting | Default | Description
Slide Show Delay | 5 | Slide Show Delay: defines the duration of display of each slide. It must be a value between 1 and 60 seconds.

Test patterns

DScaler includes now a pattern generator. Each test pattern can be described in a text file with the extension ".pat". This description follows a certain syntax. When opening one of these files, DScaler automatically builds the picture corresponding to the description and display it in the graphic card overlay exactly as if it was a normal still file.

The role of this pattern generator is to create patterns which can be displayed directly in the graphic card overlay and be used by the user to adjust overlay and monitor settings. Of course, this generator cannot do everything. It is for example restricted to static pictures and to rectangular shapes.

DScaler is delivered with few pre-defined test patterns allowing to adjust contrast, brightness, color, gamma, ... You have a direct access to all these pre-defined test patterns as they are all grouped in a virtual playlist. Select the "Patterns" source in the menu "Sources" to have a direct access to these test patterns.

You can define your own test patterns. You have only to follow the right syntax and save your text in a file with an extension ".pat". When this is done, open your file in DScaler.

The size of each test pattern is not defined in the file describing the pattern but is a global DScaler setting for all the test patterns. You can adjust this setting which is defined in the section "Patternl" of the ini file.

Setting | Default | Description
Pattern height | 576 | Pattern height: defines the height in pixels of the patterns. It must be a value betweeen 480 and 576.
Pattern width | 720 | Pattern width: defines the width in pixels of the patterns. It must be a value betweeen 240 and 768.


DScaler -- Teletext

DScaler Logo Teletext

DScaler has support for Teletext.

Teletext is a data service provided in the vertical blanking region and is found on TV signals broadcast in 50Hz countries.

Use the T key to toggle between Normal, Teletext and Mix modes.

To select a page type in the page number while in either Teletext or Mix mode.

DScaler supports different code pages for different languages. Select the match from the "Datacasting"/"Teletext Code Page" menu.


DScaler -- Timeshifting

DScaler Logo | Timeshifting
DScaler now includes alpha timeshifting code.


DScaler -- Deinterlace Methods

DScaler Logo Deinterlace Methods

DScaler supports a plug-in architecture for video deinterlacing

At start up it will load up any plug-ins and display those loaded sucessfully in the Deinterlace Mode submenu.

All of the various methods have there own set of compromises and none are perfect in all situations. The closest to an all round method is Greedy 2 Frame.


DScaler -- Adaptive Method

DScaler Logo Adaptive Method

This method uses the amount of motion detected to select the best deinterlacing alogoritm. Currently by default it switches between 2-Frame and weave.

Setting | Default | Description
Low Motion Field Count | 4 | Number of times low motion must be detected in a row before switching to low motion mode.
Static Image Field Count | 100 | Number of times a static image must be detected in a row before switching to static image mode.
Static Image Mode | Weave | Mode to use for static images.
Low Motion Mode | Two Frame | Mode to use for low motion video.
High Motion Mode | Two Frame | Mode to use for high motion video.
Adaptive Threshold 3:2 Pulldown | 15 | Threshold difference result for image to be considered static.
Adaptive Threshold 3:2 Pulldown Mismatch | 900 | Threshold difference result for image to be considered low motion.


DScaler -- Blended Clip Method

DScaler Logo | Blended Clip Method
The BLENDED CLIP Deinterlace method is designed mostly for experimentation by those interested in what works for video deinterlacing. When it is selected it will pop up a control panel with many controls to adjust various parameters. These all correspond to Blc... parameters in the [Deinterlace] section of the DScaler.ini file and are documented there. It is probably not the single best method for anything but it can be used to create custom deinterlace methods for special purposes. These can be saved in a separate ini file and invoked by a command line parameter when starting DScaler.exe. Somewhat CPU intensive


DScaler -- Simple BOB Method

DScaler Logo | Simple BOB Method
This uses only the most recent field and fills the lines in between with interpolated pixels. This method has in may ways been superceded by Scaler BOB.


DScaler -- Even Only Method

DScaler Logo | Even Only Method
These use only the even fields out of each pair and uses hardware scaling. This reduces bob artifacts at the cost of loss of information. This method was originally intended to be used with game consoles.


DScaler -- Greedy (Low Motion) Method

DScaler Logo Greedy (Low Motion) Method

The Greedy (Low Motion) Deinterlace method is designed to give good results on low motion video source, using less CPU than some others. Good on slower machines but it will give awful results on high motion video material like sports. Quite by accident, it can also do a decent job on poorly mastered 3:2 or 2:2 pull down film source material like some anime movies, regardless of low or high motion.

Who Should Use It?

Try it if you have a movie source that is not giving good results with normal Auto Pull Down processing.


DScaler -- Greedy 2 Frame Method

DScaler Logo Greedy 2 Frame Method

This method tries to combine the best features of the 2-frame algorithm with the looking ahead ability of the greedy method. I find this methods works well on sports and other high motion material. With static images and low quality sources there may be unacceptable levels of bobbing.

This method uses four fields and has a configuarable motion detect. Motion is detected on a two pixel basis.

Who Should Use It?

Everybody. This is the current default method for faster processors as it gives the best all round performance.

Settings

Setting | Default | Description
Greedy 2 Frame Luma Threshold | 4 | Luma differences above this will be interpreted as movement.
Greedy 2 Frame Chroma Threshold | 8 | Chroma differences above this will be interpreted as movement.


DScaler -- Greedy (High Motion) Method

DScaler Logo Greedy (High Motion) Method

WHAT IT DOES: (Basic)

The plugin works at two different levels. By default, at the Basic Level, it is a normal DScaler deinterlace method, with the following features:

- A merge of Blended Clip, Greedy (Low Motion), and some new stuff

- Greedy implied pulldown, like the Greedy (Low Motion) method

- Parm blending like the Blended Clip method, for less sizzling.

- Lookahead motion detection

- Diagonal Jaggie Reduction (DJR ;-) ) to smooth out the stair step effect in moving diagonal lines. This is accomplish by horizontally smoothing only the rapidly moving pixels, leaving the stationary ones alone. If a diagonal edge is not moving then it won't be jagged anyway under Greedy (High Motion). I've previously somewhere here posted a couple snaps of some hard to handle Video Essentials scenes off my test machine and a $135 non-progressive DVD player. See the Flag and the Lampposts .

- Slider adjustments for Max Comb, Motion Threshold, and Motion Sensitivity. However the defaults should be okay for most cases.

- Basic Level is compatible with all MMX, Pentium II, AMD K6-II, K6-III, Celeron and above machines. Performance will probably be about that of the Greedy (2-Frame) method.

WHAT IT DOES: (Advanced)

There is also an Advanced Level (experimental) which is invoked if you check any of the boxes in the Method UI panel. You won't be able to do this unless you are running a machine supporting the Intel SSE instruction set (only integer SSE instructions are needed). The Advanced options should run on Athlons, Intel P-III, P4, and the faster Celerons.

When using the Advanced Features Greedy (HM) maintains its own internal history of the last 4 video input fields. This means it must be able to examine every field and you can't use it at the same time as DScaler's regular Auto_Pulldown option. So if you are going to use the advanced options, please first be sure the Settings/Deinterlace/Auto_Pulldown option is not checked.

Using the Advanced Options is also very sensitive to machine performance and dropped frames, so you may have to lower your Settings/Pixel_Width to 640 if you get jerkiness. It's also best to have Hurry_When_Late=0 in the DScaler.ini file.

The new check box enabled features are:

- Built in 3:2, 2:2, an n:m Pulldown. This does pulldown matching, not removal, so all frames are displayed. I think this eventually will work better with video overlays and live TV viewing that is extensively edited, but it still needs improvement.

- In-Between Frames. This gives judder reduction for those of us with fixed 60 HZ RTPV's. In a 3:2 pulldown situation it will select an appropriate pair of fields to average once out of every 5 frames. This can effectively display every new input frame 2 1/2 times. It will cause a small amount of motion blur every fifth frame but I personally leave it turned on all the time now for a smoother film picture sequence. It will also work with 2:2 pulldown (I think) but there one half of the frames will be averaged and the motion blur may not be acceptable.

- Adjustable Edge Enhancement. This is due to an idea posted by this forum's MR. Wigggles. It enhances only a small amount, on the horizontal axis. When turned on you can use a slider to adjust it.

- Adjustable Median Filter. Also due to Mr. Wigggles, this can help filter noise. However if set over about 3-5 it will also cause motion artifacts on fast moving scenes. Also has a slider.

- Vertical Filter. This is a post-deinterlace software vertical filter that can remove both noise and some leftover deinterlace artifacts. It gives results similar to the hardware version available on the Advanced Video Flags screen, but not so extreme and without the jitter.


DScaler -- MoComp2

DScaler Logo MoComp2

This is a new method that should be considered a work in progress. At the moment it is a motion adaptive method with diagonal interpolation based on:

T. Chen, H.R. Wu; & Z.H. Yu,
"Efficient deinterlacing algorithm using edge-based line average interpolation"
Optical Engineering, Volume 39, Issue 8, (2000)

This method also incorporates built in chroma smoothing to help disguise MPEG chroma problems.

Who Should Use It?

The method should be a general use one but at the moment most consider TomsMoComp to give a better picture. As this method uses less CPU than TomsMoComp it may be well suited to those who run a lot of filters. Note the built in chroma smoother means that this method may give better results with digital sourced material such as DVD or DVB.

The Settings

There are currently no user settings. The search effort setting currently has no effect.


DScaler -- Odd Only Method

DScaler Logo | Odd Only Method
These use only the odd fields out of each pair and uses hardware scaling. This reduces bob artifacts at the cost of loss of information. This method was originally intended to be used with game consoles.


DScaler -- Old Game Method

DScaler Logo Old Game Method

This method improves the display of video games from old consoles on your computer. Instead of deinterlacing like most DScaler methods, it smoothes vertically. That gets rid of the blockiness you’d otherwise see. It works nicely with just about any game on a PlayStation, Super Nintendo, or Genesis. Presumably, it will work well with a Nintendo 64, Saturn, Atari, NES, Master System, and so on. Just don’t try it with your Vectrex.

More exactly, this method assumes that you’re looking at a progressive half vertical resolution image. So any video source which fits that description should work well. The Old Game method is similar to Odd Scanlines Only and Even Scanlines Only, but improves the picture in a couple ways. First, it works well with material running at any FPS (frames per second) rate, instead of just 25 or 30 FPS. Second, it optionally uses averaging between frames to reduce noise and color crosstalk. The averaging works well alone or along with a noise filter.

Later consoles such as the Dreamcast, PlayStation 2, GameCube, or XBox use interlaced output, and will look lousy with this deinterlacing method. (Well, some of them allow progressive output, too, but not in a way the supported input cards can understand.) To play them on your computer, use the more standard deinterlacing methods — or better yet, find a VGA adaptor. The Super Nintendo, PlayStation, Nintendo 64, and Saturn can also use an interlaced mode. The PlayStation uses interlaced mode for its startup logo, for example. But almost all games switch back into progressive half vertical resolution mode for the main play of the game. Automatic sensing of the interlace mode is something I’d like to add in the future.

Who Should Use It?

Anybody who plays old video games on their computer via video input should use this deinterlacing method. (Well, at least until something better comes along.)

There’s a bug in some older Matrox overlay drivers which allows the Scaler Bob method to work nearly as well as Old Game for progressive half vertical resolution video. It doesn’t use averaging to reduce noise, but it should run a little faster. On the other hand, Old Game is fast enough to run just fine on any computer supported by DScaler, so that doesn’t really get you much.

The Settings

There are two options to set for this method, Composite Mode and Motion Threshold. Composite Mode forces the method to always average between frames. Motion Threshold is the amount of motion (in arbitrary units) which will convince the method not to average between frames.

The way you should set these options depends on the way you’ve connected your console.

Composite or F-Connector

With a composite connection, the biggest problem by far will be color crosstalk. To get rid of it, check Composite Mode. That way, the crosstalk will be averaged out. This makes the picture look much, much nicer.

With Composite Mode checked, the Motion Threshold slider won’t do anything at all.

Surprisingly, the Temporal Comb filter doesn’t help at all for crosstalk in most old video games. That’s for an obscure technical reason involving the phase of the color carrier signal and the number of scan lines per frame.

S-video

With an S-video connection, you shouldn’t see much color crosstalk. So you can afford to set the slider to prevent averaging when the scene is moving. Turn off Composite Mode and put the Motion Threshold at about 300. Increase it a bit if you have a noisy picture (and turn on a noise filter), or decrease it if you see blurring with fast motion.


DScaler -- Scaler Bob Method

DScaler Logo Scaler Bob Method

Uses the DirectDraw hardware bob feature (if available), this uses the current field and lets the video card scaler size the picture to fit the screen. Produces reasonable results for fast moving images.

Who Should Use It?

This method uses very little CPU and is recommended on lower spec machines.

This method should not be used with automatic film detection as the overlay needs to be resized as the type swiches and this will cause flicker.


DScaler -- Tom's Motion Compensated Method

DScaler Logo TomsMoComp

This method is the latest and greatest method from Tom Barry. This new method improves on some of the older methods in two important ways.

  1. Where there is motion, the bob pixels are generated by looking along a series of diagonals as well as simple the ones above and below.
  2. Also when there motion the code will try and spot slowly moving objects and will try and maintain the detail on those objects.

The combined effect of these two searches is a big jump in picture quality and also a big jump in CPU usage.

Who Should Use It?

Everybody with a fast machine. 1 GHz is about the minimum required to use this method.

The Settings

There are only two options to set for this method:

  1. Search Effort: This setting will control how much CPU is used by the method by controlling how big an area the method will search looking for matches. A Search effort (SE) of 0 means that all pixels are smart bobbed and is not recommended. SE = 1 does no motion compensation, but doesn benefit from the diagonal bob interpolation. SE > 1 starts to do true MoComp with increasing CPU demands. You should use the highest value that allows you to run any other filters etc withuot dropped frames.
  2. Use Strange Bob: This was some test code added by John Adcock to try and reduce the number of errors in the diagonal searches. It is not recommended.


DScaler -- Video Deinterlace (2-Frame) Method

DScaler Logo | Video Deinterlace (2-Frame) Method
This method uses the current frame and the last two to determine whether to bob or weave a given pixel. This gives better results on both stationary and moving images than the above two methods however it uses more CPU.


DScaler -- Video Bob Method

DScaler Logo Video Deinterlace (Bob) Method

This method is based on Gunnar Thalin's VirtualDub filter. If it detects weaving artifacts in the current image it uses bob to get rid of them. This method has a tendency to bob rather too much and gives poor results on fine static images.

It uses the most recent two frames for the calculations and is not as CPU intensive as the more recent Greedy methods.
Setting | Default | Description
Weave Edge Detect | 625 | Weight used to help detect edges. Higher values makes edge detection stronger
Weave Jaggie Threshold | 73 | Threshold used to determone if pixel should be bobed. Higher values mean fewer bobed pixels.


DScaler -- Video Deinterlace (Weave)

DScaler Logo Video Deinterlace (Weave) Method

This was one of the earliest video deinterlace methods. It used three fields in the calculation and works well on slow moving material but tends to comb on fast moving material.

Comments from code

For ease of reading, the comments below assume that we're operating on an odd
field (i.e., that bIsOdd is true).  The exact same processing is done when we
operate on an even field, but the roles of the odd and even fields are reversed.
It's just too cumbersome to explain the algorithm in terms of "the next odd
line if we're doing an odd field, or the next even line if we're doing an
even field" etc.  So wherever you see "odd" or "even" below, keep in mind that
half the time this function is called, those words' meanings will invert.

Copy the even scanline below this one to the overlay buffer, since we'll be
adapting the current scanline to the even lines surrounding it.  The scanline
above has already been copied by the previous pass through the loop.

The meat of the work is done here.  We want to see whether this pixel is
close in luminosity to ANY of: its top neighbor, its bottom neighbor,
or its predecessor.  To do this without branching, we use MMX's
saturation feature, which gives us Z(x) = x if x>=0, or 0 if x<0.

The formula we're computing here is
     Z(ST - (E1 - O) ^ 2) + Z(ST - (E2 - O) ^ 2) + Z(TT - (Oold - O) ^ 2)
where ST is spatial tolerance and TT is temporal tolerance.  The idea
is that if a pixel is similar to none of its neighbors, the resulting
value will be pretty low, probably zero.  A high value therefore indicates
that the pixel had a similar neighbor.  The pixel in the same position
in the field before last (Oold) is considered a neighbor since we want
to be able to display 1-pixel-high horizontal lines.

Now compare the similarity totals against our threshold.  The pcmpgtw
instruction will populate the target register with a bunch of mask bits,
filling words where the comparison is true with 1s and ones where it's
false with 0s.  A few ANDs and NOTs and an OR later, we have bobbed
values for pixels under the similarity threshold and weaved ones for
pixels over the threshold.

Setting | Default | Description
Temporal Tolerance | 300 | ???
Spatial Tolerance | 600 | ???
Similarity Threshold | 25 | ???


DScaler -- Simple Weave Method

DScaler Logo | Simple Weave Method
This method just combines the most recent even and odd fields. This causes motion artifacts and is provided for comparison. This method can also be used as part of the adaptive method with static images


DScaler -- Filters

DScaler Logo | Filters
DScaler has a flexible image processing filter plugin architecture. With good sources you will get the best performance with all the filters turned off. Read each filter page to see if the situations where you might want to switch them on apply to you. All the filters increase the core CPU usage of DScaler, you may find than you run out of CPU power if you try to run more than one plug-in at the same time.


DScaler -- Gamma Filter

DScaler Logo Gamma Filter

The Gamma filter allows for adjustment of the gamma of the luminance. Gamma is normally defined as a power function and defines the amount of output generated by a given input signal.

The gamma filter operates in one of two modes

  1. Simple Gamma mode. In this mode "Use stored Gamma table" is off and the single "Gamma" setting is used to adjust the input luminance. Higher gamma values (more thna 1000) can be used to increase black detail and lift mid tones at the expense of white detail. Lower gamma values do the reverse.
  2. Use Stored Table. In this mode "Use stored Gamma table" is on and the filter uses a lookup table to convert input luminace values to the output.

Setting | Default | Description
Black Level | 0 | This is the input luminace level that is defined to be black. This setting can be used to adjust for situations where there is a high black level on input.
White level | 255 | This is the input luminace level that is defined to be white. This setting can be used to adjust for situations where there is a low white level on input.

To use the stored gamma table feature you must create an Gamma.ini which is placed in the DScaler directory. This file should have the following format:

; Input Luma on left
; Output luma on right
[Gamma]
0=255
1=254

; ... other values

127=128
128=127

; ... other values

254=1
255=0

This sample would cause the video to invert.


DScaler -- Temporal Noise Settings

DScaler Logo Temporal Noise Settings

Temporal noise reduction filter. This noise filter smooths out slight variations in pixels between adjacent frames. If the difference between a pixel and its predecessor from two fields back is less than a threshold, replace the pixel on the current field with a weighted average of its current and previous values.

Setting | Default | Description
Temporal Luminance Threshold | 6 | Pixel luminance differences below this are considered noise.
Temporal Chroma Threshold | 7 | Pixel chroma differences below this are considered noise.
Fast Memory Access | On | This speeds up the filter, but is incompatible with some VIA motherboards.


DScaler -- Gradual Noise filter

DScaler Logo Gradual Noise Filter

This filter cleans up the picture, averaging out visual noise between frames.

When colors change just a little, the filter decides that it’s probably noise, and only slightly changes the color from the previous frame. As the change in color increases, the filter becomes more and more convinced that the change is due to motion rather than noise — and the new color gets more and more weight.

The Settings

Noise Reduction

The higher you set it, the more you’ll cut down on noise — but the more blurring you will see. In general, reasonable settings range from 10 (to soften the occasional speckle without artifacts) to 20 (to reduce noise with minimal artifacts) to 40 (for better reduction, but visible blurring) up to 70 (to average out really heavy noise at the cost of bad blurring). At extremely high Noise Reduction values, you’ll start to see artifactual vertical lines.

To choose a setting for it, turn on just about any comedy or drama — anything with close-ups of moving faces. Increase Noise Reduction until the suppression of noise doesn’t seem worth the blur.

Fast Memory Access

This is a compatibility setting which should normally be turned on.

Noise Notes

You might want to take a look at Fun With Noise, a discussion of noise filtering in general.

Don’t run this filter at the same time as the Temporal Noise filter. Together they give you the “comical posterization and speckling” filter.

Filter changes

DScaler version 4.1 — Slightly changed the amount of blending to more closely approximate the calculated ideal. As a side effect, you may want to drop your Noise Reduction setting by a few ponits.


DScaler -- Adaptive Noise Filter

DScaler Logo Adaptive Noise Filter

This is yet another filter which cleans up the picture, averaging out visual noise between and within frames.

The filter is designed to cope with the oddities of broadcast TV. It automatically fine tunes itself for good or poor quality signal and reception, and can even deal reasonably with some kinds of interference. It’s spiffy!

The Adaptive Noise filter examines the image, infers the amount of noise in the picture, and uses that estimate to determine how to cancel the noise. To differentiate between noise and motion, the filter makes use of correlations within and between fields as well as local color differences. As with the Gradual Noise filter, the degree of certainty about motion and noise is used to decide what mix of the previous and current colors to show.

The Settings

Noise Reduction

Sometimes the filter doesn’t know whether change in the picture comes from noise or motion. When that happens, there’s a tradeoff — Guess motion, and the picture will be noisier if you’re wrong. Guess noise, and a mistake will blur the movement.

The Noise Reduction setting lets you tell the filter how to make this tradeoff. Set it low, and the computer will play it safe, avoiding any parts of the image which might be in motion. Set it high and noise will be greatly reduced — at the cost of blurring and loss of detail in slowly moving areas. This tradeoff is affected by the amount of noise — The more noise there is in the image, the more blurring will be necessary in order to reduce it.

There’s no perfect way to choose this — Just move the slider until it looks as nice as possible. Comedies and dramas are probably the best material for picking settings, since facial close-ups make any blurring really easy to see. (That’s because we’re especially good at seeing distortion in faces.)

There are two kinds of video which deserve some special consideration: cartoons and sports. With cartoons, you can use a much higher Noise Reduction, since animation tends to have less fine detail. And with sports (or any other show with constant motion), there isn't much to gain from a noise filter, so you can just turn it off. On the other hand, changing the settings all the time is a pain, so you might just want to choose a value and forget about it.

Before you fine tune this setting, make sure that the filter has adapted to the current signal. To do so, make use of the Lock Dot, described below.

Stability

To preserve a small amount of noise throughout the picture, move this setting down. To get a really solid looking picture, move it up. Don’t set it too high, though, or you’ll get posterization.

Regardless of your Stability setting, the filter will always preserve a certain amount of variation in order to maintain the color depth of the original image.

Spatial Smoothing (Enable)

This setting decides whether you want the filter to use spatial smoothing. It’s a very subtle smoother, and is used mostly in low contrast, moving parts of the picture. The filter is significantly (about 100 MHz) faster when spatial filtering is turned off.

Spatial Smoothing

This determines how much spatial smoothing to use. It’s measured in percent, relative to the amount of Noise Reduction.

Lock Dot

It’s... a small green dot!

Check this setting, and a tiny green dot will appear toward the upper left of the screen when the filter’s estimate of the noise is confirmed by the current picture. That’s an indication that the filter has settled on a noise value. In general, the dot will turn off when all of the picture is in rapid motion — When there’s too much motion, the filter tends not to believe the current estimate. In that case, the filter makes do by weighting previous good values.

If the picture is constantly in motion, it’ll take a while before the filter can figure out the noise level. Interference also tends to make noise estimation take longer — The estimation time depends on the kind and amount of the interference.

If all else fails, tune to the signal with the interference, then quit and restart DScaler. The Adaptive Noise filter is more tolerant of interference right after it starts up, before it has seen a clean signal from another source. But with certain kinds of heavy interference, the filter will never be able to figure out the noise level. In that case, the Temporal Noise filter is probably your best bet.

Readout

Is the Lock Dot too small and green for you? Then try turning on the Readout!

This will put a number in the upper left of the screen. This number shows the expected color change per pixel (in Y, U, and V combined) in stationary areas of the picture.

What is this good for? Readout is a diagnostic, allowing people to objectively compare the noise levels of different video capture cards.

Please note that noise levels depend not only on the capture card, but also on such details as contrast and color settings, pixel width, filtering, interference, and of course on the quality of the video source. It is also worth remembering that noise level is not the only indicator of the quality of a card. Features such as color accuracy and internal comb filtering can be much more important than a little noise.

Fast Memory Access

This is a compatibility setting which should normally be turned on.

About Adaptive Noise

How should I set Noise Reduction and Stability?

Let your eyes be the judge. I like to keep the settings pretty low — Blurred faces look worse than a little static.

If you see too much blurring in lightly textured areas, like faces and sports fields, then the best thing to do is lower the Stability setting. That will make the filter less aggressive in areas where it is unsure of the amount of motion.

If you see too much blurring overall, then it is better to reduce the Noise Reduction setting.

No matter how high I set things, the picture always seems to have a little noise. How come?

Surprisingly, small amounts of color variation can sometimes improve an image. By switching back and forth between colors, the picture is able to give the impression of a color somewhere in between them. Also, noise can break up artifactual patterns in the picture, making it easier for you to ignore the errors.

With that in mind, this filter tries to preserve a small amount of color variation. Gradual Noise and the Greedy High Motion median filter do this, too. As a result, they will never give you a completely stable picture.

This filter seems to blur too much. No, wait! Now it seems to be okay. What the heck just happened?

This filter works by estimating noise in the picture. If it has only seen moving or very dark scenes, it won’t be able to get that estimate.

You can check for this with the Lock Dot option. The dot will show up during still scenes only if the filter has a good estimate of the noise.

The picture looks a little soft. Is there anything I can do about that?

Try reducing the Stability setting.

Fun with Noise

What’s the best way to get rid of noise?

Make sure you have a good signal. Noise can come from cable jumbles, poor connections, poor power and grounding, poorly designed video input cards, electrical gadgets (anything from a dimmer switch to various computer components) or from a bad video source. These issues are all beyond the scope of this help file. I’d suggest a look at the AV Science Forum ’s Home Theater Computers FAQ and board, where these topics are discussed at length.

Should I use a noise filter?

It depends what you’re watching. Sports and nature shows in general — really anything with lots of moving low contrast texture — are not handled well by the noise filters. That’s because those textures look a lot like noise.

The Adaptive filter does the best with difficult material, disabling itself where it detects motion. It causes surprisingly few problems with field sports so long as the background noise isn’t too bad. But it isn’t perfect — Road races are especially prone to blurring. When that happens, it’s best to turn the filter off.

Otherwise, you generally should have a noise filter running.

Which noise filter should I use?

If your computer is older than a Pentium 3, Athlon, or Tualatin (~1.2 GHz) Celeron, the Adaptive noise filter won’t show up in the menu — because it can’t run. In that case, you should use either the Gradual Noise or Temporal Noise filters, which work fine on older computers. If you can run any filter, Temporal Noise and Gradual Noise are roughly the same speed at about 100 MHz. The Adaptive Noise filter is much slower, using about 250 MHz.

The Temporal Noise filter can give you a very solid picture. The Gradual Noise filter doesn’t look as solid and has trouble at high noise reduction values, but has less speckling and posterization and better color depth. The Adaptive Noise filter has a solid picture (if you want it), avoids speckling, color artifacts and posterization, and corrects for varying levels of noise. (Yes, it’s my favorite. But I wrote it, so I’m biased.) With a poor signal, the Adaptive filter can take a while to stabilize on a good picture, which can be annoying.

A fourth choice is an option hidden in the Greedy (High Motion) deinterlacing method. One of its abilities is a median filter, which works well for mild noise reduction with minimal harm to the picture. It delays the picture a little, making use of colors in upcoming fields in order to figure out how to reduce noise. The median filter is very slow (taking about 700 MHz), but you get excellent deinterlacing as well as the noise reduction.

Can I run more than one noise filter at the same time?

In general, the more noise filters you run at once, the worse the picture will get. The combination of noise filters will usually cause posterization, speckling, and banding, in addition to any artifacts caused by each of the individual noise filters.

Can any of DScaler’s other settings help reduce noise?

If you are using a Bt8x8 card, there are a couple input card options which can help. “Horizontal Filter” will smooth the picture, cutting down on noise. You can also reduce noise quite a bit (at the cost of some sharpness) by turning off “Even Luma Peaking” and “Odd Luma Peaking”.

Filter changes

DScaler version 4.1 — Added spatial smoothing; Added readout; Substantially improved the temporal smoothing. As a side effect of the changes, you will probably want to drop your Noise Reduction setting by about 10 points with this release.


DScaler -- Logo Killer Filter

DScaler Logo Logo Killer Filter

The Logo Killer Filter is an early attempt to deal with station logos added on to TV broadcasts.

It currently operates in one of three modes:

  1. Grey. In this mode the square selected is replaced by a grey square
  2. Limit to Max Value. In this mode all internal luma values over a specified maximum are clipped to a specified maximum
  3. Dynamic Max. In this mode the top and bottom egdes are used to calculate a dynamic maximum, all intenal luma values are then clipped to this maximum

Setting | Default | Description
Top | 20 | Number of pixels from top of the screen to top of logo rectangle
Left | 20 | Number of pixels from left of the screen to left of logo rectangle
Width | 20 | Width of the rectangle in pixels
Height | 50 | Height of the rectangle in pixels
Max | 128 | Maximum luma in "Limit to Max Value" mode.


DScaler -- Sharpness Filter

DScaler Logo Sharpness Filter

The sharpness filter uses Tom Barry's method for increasing the detail.

This filter should not be used with good sources but it seems to improve detail on VCR sources.

Setting | Default | Description
Sharpness | 128 | Amount of sharpness to apply. 0 is none 255 is as much as we can.
Fast Memory Access | On | This speeds up the filter, but is incompatible with some VIA motherboards.


DScaler -- Histogram Filter

DScaler Logo Histogram Filter

This is a diagnostic filter which lets you see the colors used in the current image. This can help you choose your video settings.

The Settings

Display Mode

This filter can display

  • The brightness (“Y”)
  • The color (blue “U”, red “V”, or both)
  • Or all three pixel components at once

The brightness is displayed in white, “V” color in pink, and “U” color in light blue. Regardless of the Display Mode, a dotted yellow line will appear below the graph, showing the graph’s full 256 value range.

Colors outside of the (CCIR-601) standard range will appear darker on the graph. That is meant to make calibration a little easier.

The left end of the line represents a color component value of 0; the right end a value of 255. At each position in the graph, the height of the histogram shows the logarithm of the frequency of that color component value. Where there aren’t any pixels with that color component value, the histogram’s dot will be just above the yellow line.

You may notice that the values toward the bottom of the graph are vertically separated by quite a bit. That’s just the effect of the log scale — It doesn’t say anything interesting about the picture.

Color Correction

This option causes the color components to be averaged vertically before inclusion in the histogram.

If you are using a composite connector or an internal tuner for NTSC or PAL (but not SECAM) video, this is a good idea. It gets rid of color crosstalk which would otherwise artifactually extend the range of the graph.

If you are using a PAL composite source, choose “Composite PAL.” For an NTSC composite source, pick “Composite NTSC.” Otherwise, choose “Disable.”

Fast Memory Access

This is a compatibility setting which should normally be turned on.

What’s it For?

Calibration

You can use this filter to manually calibrate signals for which you don’t have a calibration pattern.

Before you begin, you should make a decision about how you want to run DScaler — Using the standard color range, or using the full color range. The standard color range is easier to deal with, while the full color range gives slightly better color resolution.

If you are unfamiliar with calibration, it is strongly recommended that you use the standard range. That will let you use the same overlay settings in DScaler as you do in the rest of your applications.

First make sure that you have Full Luma Range (in the “Advanced Video Flags...” dialog) turned on — regardless of the color range you have decided on. Set the Histogram filter’s Display Mode to “brightness,” then open up the “Video Settings...” dialog.

If you’re going to use the standard color range, you should next move the Brightness slider until the lowest peak in the brightness distribution — which corresponds with black — is at the point where the brightness dots become dim. That is brightness = 16, which is what your overlay should expect for black.

If you have instead decided to use the full color range, then move the Brightness slider until the lowest peak is at the very left end of the graph.

Now wait until something really, really bright is on screen. If you are using the standard color range, move the Contrast slider until the whole brightness distribution is shown in the bright part of the histogram. To use the whole color range, set Contrast so the brightness distribution is entirely on the graph.

It’s important that something very bright be on the screen when you do this — Otherwise, you’ll be cutting off meaningful brightness information.

You may need to change your overlay brightness and contrast settings after you do this. This is especially important if you have chosen to use the full color range.

Though this procedure is better than not calibrating at all, it isn’t as nice as calibration based on a known pattern. Using the histogram maximizes the available information, but it does not give you any way to verify the accuracy of the result.

Diagnostics

This is a pretty general tool, so people will undoubtedly come up with other uses for it. It lets you see any changes to the signal which occur before DScaler processes the picture, so you can use it as a diagnostic for any early video transmission steps.

Note that steps which occur after DScaler processes the picture — in particular, any overlay or output device settings — will not show up in the histogram.

Filter Changes

DScaler version 4.1 — Values outside the standard color range are now dimmed in the histogram. The Vertical Averaging option has been renamed to Color Correction. (But it still averages vertically.)


DScaler -- Linear Correction Settings

DScaler Logo Linear Correction Settings

The Linear Correction Filter operates in three quite different modes

  1. Trapeziod. Simple Digital Keystone correction.
  2. Complex. Digital Keystone correction with two axes.
  3. Stretch. 4:3 to 16:9 non-linear zoom mode.

Setting | Default | Description
Do Only Masking | 0 | In Trapeziod and complex modes this flag determines whether to simply crop the picture of to squeeze the picture digitally.
Mask Parameter 1 | 0 | In Trapeziod and complex modes this is the precentage shrink to apply at the top of the picture.
Mask Parameter 2 | 0 | In Trapeziod mode this is the precentage shrink to apply at the bottom of the picture. In complex mode this is the precentage shrink to apply in the middle of the picture.
Mask Parameter 3 | 0 | In complex mode this is the precentage shrink to apply at the bottom of the picture.
Mask Parameter 4 | 0 | In complex mode this is the position of the middle section.


DScaler -- Temporal Comb Filter

DScaler Logo Temporal Comb Filter

This filter removes dot crawl and some kinds of shimmering. The effect is most noticeable on computer generated images like subtitles, weather maps, and station logos using a composite or poorly separated S-Video signal. Normal video is more subtly improved.

Who Should Use It?

The comb filter is pretty slow, requiring roughly 225 MHz of processor time. So unless you’ve got a Pentium 3, Athlon, or better, it’s probably not worth the cost.

If your computer is fast enough, you should run the comb filter whenever you’re watching a composite signal. That’s what you have if you’re using an internal TV tuner or an RCA connector.

You should also use the comb filter if your S-Video source isn’t separated very well. DVD players should have great separation if you connect them with S-Video. LaserDiscs and S-VHS VCRs vary — If they have a “3D comb filter,” then dot crawl should already be taken care of. If you have any other kind of comb filter, then the Temporal Comb may or may not help — you’ll have to judge for yourself. If your S-VHS VCR or LaserDisc does not have a comb filter, then the Temporal Comb filter should be very worthwhile.

Note that the more recently supported cards — The SAA7134 and CX2388X — both have a built-in 2D comb filter. But since those filters work spatially, and this one works temporally, there can be some benifit to using both.

The comb filter helps a great deal with composite (but not S-Video) connected games for recent consoles such as the PS2 — but it doesn’t do a thing for video from older consoles like the Super Nintendo or original PlayStation. To get rid of color crosstalk from older consoles, turn off this filter and use the Old Game deinterlacer, instead.

SECAM handles color in a very different way than PAL or NTSC. Except for people in Saudi Arabia (which uses SECAM with PAL-style color encoding), SECAM users should turn this filter off.

The Settings

I’m going to describe how to configure this filter conservatively, so you can forget about it afterward. If you like to fiddle with sliders, you can instead use much more aggressive settings (lower Recall and Shimmering values) and turn them up only when you have to.

Recall of Past Shimmering

This is the really important setting. It decides just how far back into the past the filter will look in order to confirm that there’s really some shimmering going on. Set it high (above 75%) to avoid artifacts in scenes with repetitive motion. But don’t set it too high (above 95%), or it’ll take a long time for the filter to kick in.

When you change this setting, it’ll take a moment before the screen can adjust. Really high settings (above 90%) need especially long to take.

Shimmering to Activate

This setting has a much subtler effect. If you set it high, the filter will only correct when there has been uninterrupted shimmering. Set it low, and the filter will tolerate more interruptions — but will also be a little more susceptible to artifacts.

If you’re running the Gradual or Temporal noise filter, too, you can afford to set this low — 30% works well for me. That’s a good idea, since it will allow the filter to correct more subtle shimmering. Without one of those filters, you’ll need to set it pretty high (about 70%) to avoid transient spots where dot crawl has just disappeared. If you don’t care about shimmering and just want to take care of dot crawl, you can safely set this near 100%.

Maximum Color Variation

This option lets you choose just how much the color can change before the filter decides the difference must be due to motion. It can be set much higher than the thresholds in the Temporal Noise Filter, since this filter uses a stricter motion detection method. If you’ve enabled Even Luma Peaking and Odd Luma Peaking (in the Advanced Video Flags dialog), you’ll need to set this very high — to 45 or 50. With peaking disabled, you can drop this setting to around 35. You can lower it by about 10 points if you turn on High Quality.

The higher you set this, the more likely you are to see transient spots. So if you set this really high, you’ll want to increase Recall and/or Shimmering.

There isn’t an intuitive way to choose the Maximum Color Variation, so here’s a guide to help you set it:

  • First, tune in the worst dot crawl or rainbows you can find. In the US, CNN Headlines is a dependable source, as are the “T” in the Country Music Station’s logo and the radar maps on the Weather Channel. If you’ve got a video reference DVD, connect it via composite and show a still with neighboring green and magenta color bars.
  • Turn Recall and Shimmering all the way down. Turn Maximum Color Variation up really high (to about 80). The artifacts should disappear. (Well, bad dot crawl does still leave a residual shimmer unless you enable High Quality.)
  • Move Maximum Color Variation down until the dot crawl or shimmering returns. Then raise it until the artifacts disappear, again. You’ve now got yourself the best value for it.
  • Turn Recall and Shimmering back up to more reasonable values.

High Quality

This option improves the accuracy and colors — but slows things down, and uses an additional 2 MB (for NTSC) or 4 MB (for PAL) of memory (that’s on top of the ~400K it always needs).

As with Recall, you’ll need to wait a moment before this setting takes effect.

If you are using a SAA7134 based input card, then you must use the High Quality mode — otherwise this filter won’t work.

Video Mode

Usually, people in North America and Japan should set this to NTSC, while everyone else should set this to PAL. If this is set incorrectly, the comb filter won’t work at all.

Fast Memory Access

This is a compatibility setting which should normally be turned on.

Looking for Trouble

If you want to find artifacts to help you pick settings, there are a couple types of material which are especially problematic. Strobe effects in music videos may cause fits. But the very worst case is the ticker tape on CNBC (on US Cable), which goes by at the right speed to fool the filter. Worse yet, it has bad (but moving) dot crawl. You’ll need to set the Recall option pretty high (about 85%) to avoid problems with it.

What the Heck is a Comb Filter?

In technical terms, it averages out chrominance/luminance crosstalk caused by imperfect separation from a composite signal. It’s called a “comb” for a really obscure reason — because the frequency response looks a (very little) bit like a comb. Apparently, signal processing engineers are obsessed with grooming.

CNN without Temporal Comb

Here’s an example of the problem, taken from a US Cable TV broadcast with an internal tuner. There’s heavy dot crawl in the weather map and CNN logo, and more subtle color problems in and around the text. On your screen, those dots would seem to be moving slowly upward. →

(Try to ignore the JPEG artifacts.)

CNN with Temporal Comb

And here’s the effect of the Temporal Comb Filter on the same (well, a really similar) picture. This was taken with the default settings. →

Jack without Temporal Comb

The comb filter also helps more subtly with edges in cartoons and normal video. This first picture shows “Jack” without filtering. ←

Jack with Temporal Comb

...and here he is with the comb filter enabled. Note the smoother boundary between his head/neck and the background. (Ignore the stuff under his lip — it comes from the image compression.) This picture was taken with High Quality turned on. ←

But this comb filter only works temporally, not spatially. As a result, it does not help with dot crawl and shimmering in moving images.

Note that this filter is not in any way related to “comb” in the sense used by many video folks! It’s not supposed to reduce weave artifacts (lagging horizontal lines) at all. For that, you need to take a look at the deinterlacing methods.

Version History

With DScaler 4.1, the comb filter now works for PAL as well as NTSC signals. Also, the Trade Speed for Accuracy option was renamed High Quality, so I wouldn’t have to type as much.

With DScaler 4.0, reduction of chroma shimmering is improved. The settings are also more finely scaled, especially when Recall is set fairly low.


DScaler -- Mirror Filter

DScaler Logo | Mirror Filter
The Mirror filter is designed for projectors that do not support rear projection or ceiling mount modes. The filter flips the image horizontally. This filter can be used in conjuncion with the vertical flip mode found in advanced settings to allow for most common projector mounting scenarios.


DScaler -- Colour Inversion Filter

DScaler Logo | Colour Inversion Filter
The Colour Inversion filter reverses the colour values.


DScaler -- Black and White Filter

DScaler Logo | Black and White Filter
The Black and White filter transforms any color picture in black and white (levels of gray).


DScaler -- Y/C Shift Filter

DScaler Logo Y/C Shift Filter

The Y/C shift filter is a fliter that allows to apply a shift between the luminance and the chrominance in the picture.

Note that the chroma filter (other filter provided with DScaler) is doing something similar.

The Y/C shift filter works on the input fields and apply the shift to the luminance relative to the chrominance. Compared to the Chroma filter, its advantages are to allow a shift of several pixels and to requires less CPU. Its disadvantages are to allow only a horizontal shift while the Chroma filter can work in two directions, and to work on luminance while the Chroma filter works on the chrominance (the human eye is more sensitive to the luminance information than the chrominance information).

Setting | Default | Description
Luminance Horizontal Shift | 0 | Shift applied to the luminance. A value of 16 corresponds to one pixel. A positive value shifts the luminance to the right while a negative value does it to the left.


DScaler -- Advanced Settings

DScaler Logo Advanced Settings

Many of the settings that DScaler uses are configuarable.

Whilst most users should use the default setting we know there are people out there who will want to tweak DScaler.

All the settings in DScaler have been optimized to run with many sources. However you may find that certain settings work better with your setup.

If you feel that your settings are better than the defaults over a wide range of material please let us know.


DScaler -- 2:2 Pulldown Settings

DScaler Logo 2:2 Pulldown Settings

2:2 Pulldown detection uses the comb factor measurement to determine whether the material was sourced from film or from video. The default settings have been found to work with a wide range of inputs but there are problems with some highly detailed images.

Setting | Default | Description
Pulldown Threshold Low | 40 | This is the percentage drop in comb factor that will be considered to be a candidate film mode.
Pulldown Threshold High | 10 | This is the percentage increase in comb-factor that will be considered evedence that we are no longer in film mode
PAL Video Mode | Dependent on CPU selection in general hardware dialog box | This is the mode that will be used when film mode has not been detected
PAL Pulldown Repeat Count In | 3 | Number of times film mode must be spotted in a row before a switch to film mode
PAL Pulldown Repeat Count Out | 1 | Each time bad pulldown is encountered the count is decremented starting at "PAL Pulldown Repeat Count In", once the count reaches this value then we go back to video mode.
Max Calls to PAL Comb Method | 20 | If we have tuned off "Bad Pulldown Filter" then this is the number of calls allowed to the bad cadence method before switching back to video mode.
PAL Bad Cadence Mode | Greedy Low Motion | If we have tuned off "Bad Pulldown Filter" then this mode is activated when bad cadence is detected.


DScaler -- 3:2 Pulldown Settings

DScaler Logo 3:2 Pulldown Settings

The 3:2 pulldown detection method is based on Mark Rejhon's alogrithm. This uses field differences to detect field repeats.

Setting | Default | Description
NTSC Video Mode | Dependent on CPU selection in general hardware dialog box | This is the mode that will be used when film mode has not been detected.
NTSC Pulldown Repeat Count In | 4 | Number of times film mode must be spotted in a row before a switch to film mode
NTSC Pulldown Repeat Count Out | 2 | Each time bad pulldown is encountered the count is decremented starting at "PAL Pulldown Repeat Count In", once the count reaches this value then we go back to video mode.
Threshold 3:2 Pulldown | 15 | Field difference results below this value are considered to be matched for the detection alogoritm
Threshold 3:2 Pulldown Mismatch | 100 | Field difference results above this value are considered to indicate motion and will indicate bad cadence and are used in conjunction with the comb factor to switch back to video.
Threshold 3:2 Pulldown Comb | 300 | If there is motion as defined above and the absolute differnce between comb factors exceeds this value then we switch to video.
Bad Pulldown Filter | ON | If this flag is on then bad cadence switches straight back to video mode. If off we go via an intermediate mode. This corresponds to the "Fallback to Video on Bad Pulldown" menu item.
Pulldown Switch Interval | 3000 | If the time in ms between detecting different film modes is less than this value then we don't switch to film. This avoid problems with very poorly mastered material.
Pulldown Switch Max | 4 | We track for fast switches once the number of switches is greater than this value
Max Calls to Comb Method | 20 | If "Bad Pulldown Filter" is off then this is the number of times the interim pulldown mode can be called.
NTSC Bad Cadence Mode | Greedy Low Motion | If "Bad Pulldown Filter" is off then this mode is used until either the above count runs out or a new film mode is detected.


DScaler -- Shared Pulldown Settings

DScaler Logo Shared Pulldown Settings

Shared settings for the pulldown detection routines. THe setings here have been tested over a wide variety of material and many of the other prameteres will change if these are adjusted. It is not recommended that any of these parameters are changed.

Setting | Default | Description
Bit Shift | 12 | Used by the field difference method, the square of the differnce is right shifted by this amount.
Comb Edge Detect | 625 | Not currently used
Comb Jaggie Threshold | 73 | Used by the comb detection routine to spot weave artifacts.
DiffThreshold | 224 | Not currently used
Chroma Detect | OFF | Increase accuaracy of film detection by using chroma information as well as luma. Switching this on uses more CPUO for film detection and may not improve results on VCR material.
Film Flip Delay | 0 | Number of field by which to delay flip, this can be used to align film modes with greedy video modes so that judder does not occur on transitions.


DScaler -- Teletext Settings

DScaler Logo Teletext Settings

Various settings for configuring various aspects of Teletext.

Language Region

This setting sets the set of codepages used when Automatic codepage detection is used.

Region |  | Languages
0: Default | (DEFAULT) | English, French, Swedish, Czech, German, Spanish, Italian
1: Central Europe |  | Polish, French, Swedish, Czech, German, Spanish, Italian
2: Southern Europe |  | English, French, Swedish, Turkish, German, Spanish, Italian
3: Balkans |  | Slovenian, Rumanian
4: Eastern Europe |  | Serbian, Russian, Estonian, Czech, German, Ukrainian, Lithuanian
5: Mediterranean |  | Turkish, Greek
6: North Africa |  | Arabic
7: Middle East |  | Hebrew, Arabic

Unlisted Languages:

Language | Same As
Finnish, Hungarian | Swedish
Portuguese | Spanish
Serbian, Croatian (Latin) | Slovenian
Croatian (Cyrillic-1) | Serbian
Bulgarian | Russian
Lettish | Lithuanian

Show Page Subcode in OSD

Default: OFF

When this is set, the page subcode is displayed as well as the page number on the top left corner of the screen.

Page Lines Caching Control

This setting defines how newly received lines replace existing stored lines

Setting |  | Description
0: Normal Error Correction |  | The new lines replace the stored line only if the stored line has an error.
1: Second Chance Error Correction | (DEFAULT) | The stored lines are replaced if the new lines have no errors.
2: Always Update |  | The stored lines are always replaced.

The default is 0: Normal Error Correction but error detection, based on parity checking, can fail to detect erroneous lines. With the default setting, undetected erroneous lines can become permanently stored. This can be alleviated by setting 1: Second Chance Error Correction but this also means undetected erroneous lines can replace previously error free lines.

The 0: Normal Error Correction setting takes the least amount of processing to 2: Always Update taking the most.

High Granularity Caching

Default: OFF

When this is set, instead of copying whole lines as defined by the Page Lines Caching Control option, only the error-free bytes in the lines are copied. Poor Teletext signals may work better when this is set. Teletext caching takes a little more processing when this is set.

Substitute Errors with Spaces

Default: OFF

When this is set, erroneously received characters are replaced with spaces.

Filter: Force Double Height Subtitles

Default: OFF

When this is set, all lines on subtitle pages are forced double height. This setting is for correcting poorly received subtitle pages where the double height signal has been lost. It is not intended for use on clean signals.

Filter: Upscroll Subtitle Duplication Remover

Default: OFF

Turns ON or OFF the Upscroll Subtitle Duplication Remover filter.

Full Description

Broadcasters can transmit scrolling subtitles by transmitting a series of page updates in which a "scroll" constitutes of the removal of the top line and the moving up of the following lines.

The problem is, broadcasters might not broadcast a single scroll update in a single page update, but instead fragmented across multiple page updates. This fragmentation creates a line duplication effect that is characterised by the following sequence of subtitle displays:

Initial display:
>> SUBTITLE STARTS ON THE TOP LINE		(update)
AND CONTINUES ONTO THE NEXT BUT WHEN		(update)
IT DRAWS TO THE END OF THE THIRD		(update)
After scroll update +1:
AND CONTINUES ONTO THE NEXT BUT WHEN		(update)
AND CONTINUES ONTO THE NEXT BUT WHEN		(stale)
IT DRAWS TO THE END OF THE THIRD		(stale)
After scroll update +2:
AND CONTINUES ONTO THE NEXT BUT WHEN		(stale)
IT DRAWS TO THE END OF THE THIRD		(update)
IT DRAWS TO THE END OF THE THIRD		(stale)
After scroll update +3:
AND CONTINUES ONTO THE NEXT BUT WHEN		(stale)
IT DRAWS TO THE END OF THE THIRD		(stale)
LINE, EVERYTHING MOVES UP TO CATER		(update)

Instead of transmitting one single page update in which all three subtitle lines are updated, the broadcaster may separate the update into as many as three separate page updates. The duplicate lines only show for an instant before the next page update is received but this might cause enough distraction to make the subtitles hard to follow.

The filter removes this by getting rid of duplicates lines:

Initial display:
>> SUBTITLE STARTS ON THE TOP LINE		(update)
AND CONTINUES ONTO THE NEXT BUT WHEN		(update)
IT DRAWS TO THE END OF THE THIRD		(update)
After scroll update +1:
AND CONTINUES ONTO THE NEXT BUT WHEN		(update)
IT DRAWS TO THE END OF THE THIRD		(filtered)
                    (filtered)
After scroll update +2:
AND CONTINUES ONTO THE NEXT BUT WHEN		(stale)
IT DRAWS TO THE END OF THE THIRD		(update)
                    (filtered)
After scroll update +3:
AND CONTINUES ONTO THE NEXT BUT WHEN		(stale)
IT DRAWS TO THE END OF THE THIRD		(stale)
LINE, EVERYTHING MOVES UP TO CATER		(update)

(... TO CATER... FOR THE COMING LINE.)


DScaler -- Logging Settings

DScaler Logo Logging Settings

DScaler has an log feature that is useful for collecting infomation to attach to bug reports or for developement. Under normal circumstances logging should be off. When switched on infomation is written to DScaler.txt in the DScaler directory.

Setting | Default | Description
Debug Log | OFF | Whether logging is on or off.
Debug Level | 1 | The anount of logging to produce, higher values give more detailed output.
Debug Log File Name | DScaler.txt | The file to use to write logging.


DScaler -- Aspect Ratio Settings

DScaler Logo Aspect Ratio Settings

Most of the aspect ratio settings can be controlled from the menu. The settings shown below are those that cannot be accessed in this way

Setting | Default | Description
Custom Screen Aspect | 1335 | The aspect value used when custom is selected for display screen ratio.
Auto Detect Aspect Sensitivity | 40 | Luma values below this are considered balck by the auto aspect ratio code.
Ignore Non-Black Pixels | 3 | Used by auto aspect ratio code, if there are more non black pixels than this then the line is not considered black/
Zoom In Frame Count | 60 | Number of times we need to detect a letterboxed picture before changing mode
Zoom Out Frame Count | 3 | Number of consecutive frame before autodetction code will switch to a lower ratio.
Aspect History Time | 300 | Number of seconds the successive ratios are saved and can be restored quickly if detected.
Aspect Consistency Time | 15 | ???
Skip Percentage | 17 | Amount of left and right edges of the screen that should not be used by the black bar detection code.
Chroma Range | 16 | Used by balck bar detection. This is the range of deviation from back allowed in chroma information.
Allow greater ratio than screen ratio | ON | Can be used (when OFF) to disable ratio greater than screen ratio.
Use WSS data | OFF | When ON, the automatic aspect ratio detection takes into account the WSS data including in the VBI data.
Use only WSS data | OFF | When ON, the automatic aspect ratio detection uses only the WSS data including in the VBI data to do its choices for ratio. This setting is relevant only when "Use WSS data" is ON.
Bounce Period (Secs) | 1800 | Number of seconds between bounce movements
Bounce Timer Period (ms) | 1000 | Frequency that bounce time is checked.
Bounce Amplitude (%) | 100 | Percenage of full range that bounce operates on
Orbit Timer Period (ms) | 60000 | Period between orbit movements
Orbit Size | 8 | Number of pixels range that orbit operates on. Overscan must be at least this value.


DScaler -- Timing Settings

DScaler Logo Timing Settings

Settings specific to flip timing

Setting | Default | Description
Auto Format Detect | ON | Should we try and spot input format changes
50Hz Format | PAL | Mode to use when 50Hz input is detected
60Hz Format | NTSC | Mode to use when 60Hz input is detected
Format Change Threshold | 2 | Number of ten field periods when the timing pattern must be repeated before switching.
Do JudderTerminator On Video Modes | OFF | If global JudderTerminator is on then should it be used in video mode.
Sleep Interval | 0 | Number of ms to sleep when waiting.
Sleep Skip Fields | 0 | Can be used to only sleep every so many frames.
Sleep Skip Fields Late | 0 | Can be used to only sleep every so many frames when running late.


DScaler -- Overlay Settings

DScaler Logo Overlay Settings

Setting specific to the Overlay

Setting | Default | Description
Back Buffers | -1 | Number of back buffers to use. -1 means get maximun that card will support, usually 2
Overlay Colorkey | RGB(32,16,16) | Color to use for the overlay colorkey.
Use Overlay Controls | OFF | Should we control the Graphic card's overlay controls.
Overlay Brightness | 75 | Allows setting of the graphic card's overlay Brightness
Overlay Contrast | 100 | Allows setting of the graphic card's overlay Contrast
Overlay Hue | 0 | Allows setting of the graphic card's overlay Hue
Overlay Saturation | 100 | Allows setting of the graphic card's overlay Saturation
Overlay Gamma | 1 | Allows setting of the graphic card's overlay Gamma
Overlay Sharpness | 5 | Allows setting of the graphic card's overlay Sharpness.


DScaler -- Ini File Settings

DScaler Logo DScaler.ini Settings

Almost all features of the program are configurable through the menu system. All the settings used by the program are stored in the ini file and no changes are made to the registry.

While the default name of this file is DScaler.ini, other names and copies may be used, to create multiple profiles. Just create a shortcut to invoke DScaler with a single parameter such as "DScaler.exe vcr.ini". This would cause the vcr.ini (or whatever) file to be used and saved on exit. Doing this is easiest if you copy a working DScaler.ini file first and then change it using the DScaler menus.


DScaler -- Source Specific Settings

DScaler Logo Source Specific Settings

Many of the settings that DScaler uses for individual sources are configurable.

Whilst most users should use the default setting we know there are people out there who will want to tweak DScaler.

All the settings in DScaler have been optimized to run with many sources. However you may find that certain settings work better with your setup.

If you feel that your settings are better than the defaults over a wide range of material please let us know.


DScaler -- BT8x8 Advanced Settings

DScaler Logo BT8x8 Advanced Settings

Advanced Settings for BT848/BT878 based cards. The default values are chosen to work well with most situations and usually do not need to be changed.

Setting | Default | Description
Agc Disable | 0 | Disable AGC(automatic gain control). This doesn't work well for almost anyone, but it's there.
Crush | 1 | Turn on Adaptive AGC , this is the Crush bit in the ADC Interface register.
White Crush Up | 207 | Fine tuning of the Adaptive AGC White Crush Up Register. This, and below, are the full 8 bit contents of the 2 registers. I'm not sure we have the best defaults here. See the BT8x8 datasheets.
White Crush Down | 127 | Fine tuning of the Adaptive AGC White Crush Down Registers. See above.
Even Chroma AGC | 1 | Even/odd chroma AGC. Must be 0 or 1. Turns on color AGC.
Odd Chroma AGC | 1 |
Even Luma Peak | 0 | From the BT8X8datasheet: (PEAK) bit determines whether the normal luma low-pass filters are implemented via the HFILT bits, or the peaking filters are implemented. (HFILT is the horizontal filter mentioned below)
Odd Luma Peak | 0 |
Full Luma Range | 1 | Luma Output Range. DScaler defaults to 1 but maybe should be set to 0 for NTSC systems.
Even Luma Dec | 0 | From the datasheet: The Luma Decimation filter is used to reduce the high-frequency component of the luma signal. Useful when scaling to CIF resolutions or lower. If ON it enables luma decimation using the selectable H filter.
Odd Luma Dec | 0 |
Even Comb | 1 | Chroma Comb Enable. This bit determines if the chroma comb is included in the data path. If enabled, a full line store is used to average adjacent lines of color information, reducing cross-color artifacts.
Odd Comb | 1 |
Color Bars | 0 | Show color bars on display
Gamma Correction | 0 | Gamma Correction. This is another double negative. If it equals 0 (OFF) it really says we do not want to do gamma correction removal. If ON the we DO gamma correction removal. This setting doesn't appear to affect the YUY2 mode that we use and so has no effect.
Coring | 0 | Luma Coring. This sets the minimum black level. This value might also be different for PAL/NTSC. It must be 0, 1, 2, or 3. Unclear yet what is the best value.
Horz Filter | 0 | Turns on hardware Horizontal filter. Because of DScalers large scale only values 0 and 1 are valid. 0=normal 2 tap filter (like before), 4 adds a little more filter but works (I think) only when the BtLumaPeak and BtLumaDec are also both on. It makes thing a little softer.
Vert Filter | 0 | Vertical filter. Valid values would be 0-7 but at DScaler's resolution only 0 and 4 are allowed. 0 = 2-tap interpolation only. 4 = 2-tap plus z filter. This make thing a lot softer.
Color Kill | 1 | Auto Low Color Killer is supposed to suppress the color signal if it looks like a black and white video.
Custom Pixel Width | 750 | Pixel Width used when Custom Pixel Width is selected on the menu.
Horizontal Delay | 0 | Number of half lines to skip at the top before we start capturing. 0 means use default for format.
Vertical Delay | 0 | Period to skip on the left before we start capturing. 0 means use default for format.


DScaler -- SAA713x Advanced Settings

DScaler Logo SAA713x Advanced Settings

Advanced Settings for SAA7130/4 based cards. The default values are chosen to work well with most situations and usually do not need to be changed.

Setting | Default | Description
Automatic Gain Control | ON | Enable or disables the card's automatic gain control.
Automatic Volume Leveling | MEDIUM | The card automatically changes the volume level to avoid digital clipping. Not supported on the SAA7130.
Custom Pixel Width | 750 | The pixel width used when Custom is selected as the Pixel Width.
Gain Control Level | 256 | The gain level used when Automatic Gain Control is switched off.
Horizontal Delay | 0 | Shifts the picture right or left horizontally.
Mirroring | OFF | Enables the card's mirroring filter.
Reverse Polarity | OFF | Switches odd and even field order.
VBI Debug Overlay | OFF | Overlays VBI data onto a portion of video so that the VBI data given by the card can be seen.
VBI Upscale Divisor | 424 | Used by the card to determine the VBI sampling rate. Lower means higher sampling rate, hence better VBI decoding. Not all cards can handle low values. VBI Debug Overlay can be used to aid adjusting.
Vertical Delay | 0 | Shifts the picture up or down vertically.


DScaler -- BT8x8 Advanced Settings

DScaler Logo BT8x8 Advanced Settings

Advanced Settings for CX2388x based cards. The default values are chosen to work well with most situations and usually do not need to be changed.

Setting | Default | Description
Horizontal Delay | 0 | Number of half lines to skip at the top before we start capturing. 0 means use default for format.
Vertical Delay | 0 | Period to skip on the left before we start capturing. 0 means use default for format.
Eat Lines at Top | 25 | (H3D Specific) Discards lines at the top of the SDI input when in non-progressive mode.


DScaler -- Developers

DScaler Logo Developers

Additional developers are always needed for DScaler!

In only a short time, this project has garnered a large, loyal, active, and knowledgable user-base of videophiles. This project is making waves in the home theater industry! The project is currently in need of developers with a broad range of skills (C++, assembly, user interface, video internals, etc.). Your skills will be utilized immediately, as we seek to keep this extraordinary momentum going.

To get started on DScaler development browse through the source and check out some of the documents linked below and then introduce yourself to the developers mailing list.

Please refer to the bugs and Todo pages for the current task list (Note, these may be outdated. It's recommended to join the mailing list to keep yourself up to date!). If you think that you can take on a part of one of these tasks, everyone on the mailing list would love to hear from you.

DScaler is released under the GNU Public License. Browse the CVS repository and take a look at the code, then download the latest release source zipped. In addition to the latest release source, you may be interested in reviewing the latest beta source, updated from CVS four times daily (application, test deinterlace DirectShow module).

The source compiles under MS Visual C++ 6.0. The application has grown out of the GPL code base of MultiDec and MoreTV, two cable descrambling programs. By combining the GPL parts of both and extending them both, we were able to create a new legal totally open source project.

The individual source files are in the CVS Repository. To get check-out and check-in access, you will need to get cvs and to make a few configuration changes see the project CVS Instructions for more details. Please e-mail your Sourceforge username to the webmaster to be added to the project and for CVS check-out and check-in permission.

Sourceforge Project Developer Links

Main Project page

Mailing List

Browse CVS Repository

Application Source Zip

Test Deinterlace DirectShow Module Source Zip

Deinterlace Project Developer Resources

Mark Rejhon's Spec of His 3:2 Pulldown Algorithm.

John Adcock's PALMovie deinterlace plugin for bTV.

A chapter from Video Demystified dealing with the PAL, NTSC, and SECAM standards as well as Teletext and Closed-Captioning.

An explanation of the options available in the DScaler.ini file.

Conexant's Bt 8x8 register tools for Windows 9x.

BT848 Links

BT878a page at Conexant

bttv - Linux Driver - Without this none of this would have been possible

FreeBSD bt848 Driver Project

Sound Links

This FTP site contains documents on the MSP sound chips and Phillips and Temic tuners that would be useful for anyone looking to improve these areas. I only recently found this site and have had a quick look and found that most of the information you need should be buried in this lot.


DScaler - CVS Instructions

DScaler logo CVS Instructions
  1. Download the latest version of WinCVS from http://www.cvsgui.org. Install it. (Instructions confirmed with version 1.3 beta 6.)
  2. Download the latest windows setup program from http://sfsetup.sourceforge.net/ and unpack it. (Instructions confirmed with version 1.3.)
  3. Run sfsetup.exe... It may give you a WinCVS error. That`s OK. Have it set up ssh and the DScaler project. Make sure you specify your sourceforge username, the project as "deinterlace", the home directory as the directory in which you installed ssh, and the checkout directory as the directory where you want to save the DScaler code on your local machine.

    NOTICE TO WINDOWS 2000 USERS -- Before running make sure your C:\AUTOEXEC.BAT exists and is writable (and not hidden, not system). It cannot be blank - it must have at least one line of text in it. If it is 0 bytes, add an "@echo off" line to it, followed by an Enter.

    NOTICE TO WINDOWS 95/98/ME USERS -- After running sfsetup, reboot the computer to load the new AUTOEXEC.BAT settings.
  4. Run WinCVS.
  5. Choose Create-Checkout Module. The modules available in the Deinterlace project include:

    a) DScaler -- the main DScaler application, including hardware drivers, help files, and skins;
    b) DSRend -- the DScaler renderer filter necessary for native DirectShow support in the DScaler application;
    c) deinterlace -- the experimental DirectShow wrapper; and
    d) htdocs -- the web site.

    NB: the htdocs module includes copies of many help files in the DScaler module. If you make corrections on any of these files, please check in the changes in both places.
  6. Click OK. After a couple of seconds a minimized ssh DOS window will appear. Maximize the window. It MAY be blank, it MAY say "Password:"; Enter your password even if the DOS window is completely blank without the "Password:" prompt. There will be no echo. Just type your password and then hit Enter.

    NB: Upon running for the first time, the DOS window will mention that a random seed is being generated for the Sourceforge site. Again, you may not be prompted for your password, but you will need to enter it anyway.
  7. WinCVS should now be checking out the code.
  8. For those who will be making edits to the code, you can do so with impunity. Make your edits and submit them to the CVS by first selecting the file. Choose Modify-Update Selection from the menu. This merges your local changes with the CVS code. Next, choose Modify-Commit Selection. This will make the changes in the CVS. After each step, you will be presented with the DOS window discussed in #6, above.


DScaler -- Coding Standards

DScaler Logo Coding Standards

The Deinterlace Project - Revision 1.0

Abstract:

This document describes the C++ Coding Standards as they are used in the deinterlace project. It provides a set of guidelines, rationales and standards for C/C++ coding.

Copyright notice

Deinterlace Copyright (c) 2001 John Adcock

Revision 1.6 , Last Modified: 2001/07/13

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License.

This document was based on the on the CoreLinux C++ Coding standards document version 1.6

The original document can be found http://corelinux.sourceforge.net/cppstnd.php

CoreLinux++ Copyright (c) 1999, 2000 CoreLinux Consortium

Revision 1.6 , Last Modified: 2000/09/22

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License.

Scope

The principle function of this document is to establish a consistent standard which will provide for easier maintenance of code. This will benefit the team and the project in that those who are new to the code can quickly orient themselves, and thereby sooner become productive members of the team. It is intended to be a dynamic document and can be reviewed as needed. It is recommended that each programmer keep a copy on hand also.

Document Overview

The following document sections contain standards, guidelines, and rationales. Guidelines must be adhered to unless there is compelling reason to deviate. Deviation from a guideline must be discussed and approved during the code walk-through. A standard is an item to which compliance is mandatory. Deviation from a standard must be discussed, approved, and signed-off on by the team lead during the code walk-through. Rationales have been used where necessary to explain the meaning of an item, or why it was chosen.

General Principles

This section contains the basic philosophy a developer should keep in mind while coding.

Comments

This section deals with the placement and contents of comments in the code.

Code Layout

This section has to do with the alignment of the code, white space, declarations and keywords, and where they should all be located.

Naming Conventions

This section contains the structure for naming classes, functions, files, and directories.

Usage

This section concerns the 'how' and 'when' certain constructs should be used (for example, loops, inheritance, error handling, etc.)

File Layout

This section applies to where things should be located in header files and modules.

General Principles

The primary goal of the coding standard is maintainability. Other important considerations that relate to the spirit of the standard are correctness, readability, consistency, extensibility, portability, clarity, and simplicity. When in doubt, the programmer should strive for clarity first, then efficiency.

Think of the reader. Do not just write for yourself. Keep it simple. Break down complexity into simpler chunks. Clearly comment necessary complexity. Be explicit. Avoid implicit or obscure language features. Be consistent. Minimize scope, both logical and visual.

Much of the code in DScaler does not conform to these standards. Please when making changes try to apply the standards to any surrounding code. This is especially true of comments and variable naming.

Comments

Guideline 1: Be clear and concise. Say what is happening and why. Do not restate code.

Guideline 2: Keep code and comments visually separate.

Standard 1: Use top of file comments for all files. Include CVS $Id$ and $Log$ tags on this block. Include the correct GPL comment and assign copyright to yourself for totally new files or the same as the original source if splitting files.

Standard 1: Use only the C++ comment style (double slashes) for single line comments.

Guideline 3: For block comment styles either C++ (double slashes) or C style (/* ... */) can be used.

// ...

-OR-

/* ... */

Guideline 4: Prefer block comments over trailing comments. Use block comments regularly. Only use trailing comments for special items.

Standard 5: Trailing comments must all start in the same column in the function.

Standard 6: Trailing comments at a closing brace are indented one level from brace.

Standard 7: Block comments are at the same indentation level as the block they describe.

Standard 8: Ensure comments are correct (and stay correct).

Code Layout

Guideline 5: Write code in a series of chunks.

Guideline 6: Use block comments to separate the chunks.

Standard 9: Put one statement per line, except with in-line code in a header file.

Guideline 7: Functions shall have a single exit point. Exceptions to this rule are allowed in simple cases (e.g. where functions are less than 15 lines) and for invalid parameter checks.

Rationale: Multiple exit points usually add to the complexity of a function.

Standard 10: Indentation level is four (4) spaces. Set editor to replace tabs with spaces

Braces and Parenthesis

Standard 11: Braces shall be aligned using Ulman style where the braces are at the same scope as the statement that proceeds them and the code within the braces is indented one level. Braces are always on a line by themselves.

void DoSomething( void )
{
    if(x != y)
    {
        y = x;
    }
    else
    {
        ; // do nothing
    }
}

-NOT-

void DoSomething( void )
{
    if(x != y)
    {
    y = x; // should be indented
    }
    else
    {
    ; // do nothing
    }
}

- OR -

void DoSomething( void )
{
    if(x != y)
        { // brace is not the same scope
        y = x;
        }
    else
        {
        ; // do nothing
        }
}

- OR -

void DoSomething( void )
{
    if(x != y){ // brace is not on a line by itself
        y = x;
    }
    else{
        ; // do nothing
    }
}

Standard 12: While, for and if statements shall always use braces, even if they are not syntactically required.

Guideline 8: Use parenthesis to group within a statement and to emphasize evaluation order.

Guideline 9: Avoid unnecessary parentheses.

Guideline 10: Avoid deep (more than three) levels of parenthesis nesting.

Declarations

Standard 14: Start each declaration on a new line. (Except for loops where the counter can be defined within the statement)

Standard 15: Enumeration declarations will be declared with named constants in upper case and the identifier specified as described in Naming conventions. Where it is expected that code will iterate over the space defined by the enum then there should be a ???_LAST_ONE entry defined.

enum eIdentifier
{
    ONE,
    TWO,
    THREE
};

- or -

enum eIdentifier
{
    ONE = 1,
    TWO,
    THREE,
    IDENTIFIER_LAST_ONE,
};

Standard 16: All variables must be initialized.

Guideline 11: Use vertical alignment to ease scanning of declarations. Where possible the variable names should start in column 15.

STRING         StringToUse;
int            MyInt;
COMPLEX        ComplexNumberToUse;

-instead of-

STRING StringToUse;
int MyInt;
COMPLEX ComplexNumberToUse;

Standard 17: Do not create anonymous types (structs), except in a class declaration where a private structure is declared.

Keyword Constructs

Standard 19: Nested else if statements shall be indented as normal statements, the if shall appear on the same line as the else, and shall have a final else statement (most likely with a NEVER_GET_HERE; statement).

if( x > y )
{
    x = x - y;
}
else if( x < y )
{
    y = y - x;
}
else
{
    // x and y should never be equal
    NEVER_GET_HERE;
}

Standard 20: Cases should be at the same level as the switch and indent the code one level beyond the case. The break statement is at the same indentation level as the code.

Standard 21: All switch statements shall have a default case. If all cases have been handled then the default code shall be NEVER_GET_HERE. If not then it shall be an empty statement.

switch(Variable)
{
case 1:
    // ... code ...
    break;

case 2:
    // ... code ...
    break;

default:
    NEVER_GET_HERE;
    break;
}

- OR -

switch(Variable)
{
case 1:
    // ... code ...
    break;

case 2:
    // ... code ...
    break;

default:
    ; // do nothing
    break;
}

Standard 22: Put the while in a do while statement on the same line as the closing brace.

do { ++x; } while(x < y);

Preprocessor

Guideline 13: Preprocessor directives should be avoided whenever possible.

Standard 25: Multi-statement macros shall have one statement per line.

#define MULTIPLE_LINE_MACRO( s ) \
     ++(s); \
     (s) = ((s) % 3 ? ++(s) : (s))

Spaces

Standard 26: Do not use spaces in object de-references.

val = *pFoo; // ok
val = * pFoo; // wrong

Standard 27: When defining pointer types put asterix next to type with no spaces.

CClass* pFoo; // ok
CClass *pFoo; // wrong
CClass foo, *pFoo; // very wrong

Standard 28: Do not space between an unary operator and its operand, but do space the other side.

Standard 29: Balance spacing on either side of binary operators.

Standard 30: Do not space before separators ( semicolon, argument comma separator ) but do space the other side.

Standard 32: Balance spacing inside parenthesis.

Standard 34: Use blank lines before and after block comments.

Standard 35: Use vertical alignment to indicate association.

Standard 36: Use spaces, not tabs.

Rationale: Tab sizes vary between developers. When spaces are used, the alignment is maintained no matter where the file is edited.

Wrapping

Guideline 15: No line of code should extend beyond column 100.

Rationale: When the audience for the source and headers of a project may reach hundreds, if not more, readability and continuity become prime factors for comprehension. Additionally, in a multi-developer environment, the potential for disjoint style is personified with no restrictions on column length.

Standard 37: When wrapping lines, indent the continuation line past the current indent column.

int Val(2);
cout << "This is an example where I wrap "
     << Val
     << " lines of code" << endl;

Standard 38: Wrap assignments past the equal sign.

CObjectMapConstIterator Iterator =
        m_MapOfObjects.begin();

Standard 39: Wrap conditional expressions after the operators.

if(m_NameOfTheGame == gameName &&
   m_TimeBeingPlayed > Limit)
{
    // ...
}

Standard 40: Wrap for statements after the semi-colons.

Standard 41: Wrap long function signatures with one parameter per line.

void CClassMethod::setValues(
                               const Object& Object1,
                               const Object& Object2,
                               const STRING& Name,
                               const int Value,
                               ...
                            )
{
    ;
}

Naming Conventions

Standard 42: Spell words using correct English spelling. For the most part, avoid abbreviations. Abbreviations for common longwinded phases may be used as though they are normal words if the abbreviation is placed in the Glossary and the usage remains clear in the context.

Rationale: The semantics of a type are much better understood by the reader when they have names like "SpeakerCabinet" instead of "SpkCb".

Guideline 16: Make names clearly unique. Avoid similar-sounding names and similarly-spelled names.

int Count;
String Surname;
CObject Person;

- INSTEAD OF -

int x1;
String x2;
CObject x3;

Standard 43: Make all identifiers unique within a function.

Standard 44: Use mixed case to distinguish name segments instead of underscores.

CWellFormedObject WellFormedObject;   // ok
non_standard_form Wellformedobject;   // wrong

Standard 45: Types are all upper case and use underscores to separate name segments. (i.e. CURRENCY, BIG_CAR,STRING).

Standard 46: Variables and objects names that are data members of a class start with a 'm_' and followed by an upper case letter then mixed case.

class CFoo
{
public:
      // ..
protected:
    NEW_TYPE m_NewType;
};

Standard 47: Variables and objects names that are arguments or locals start with an upper case letter and are mixed case thereafter. (i.e. NEW_TYPE NewType; ).

Standard 48: Pointer variable names are prefixed 'p' followed by an upper case letter.

Guideline 17: Only use short variable names when they have limited scope and obvious meaning. Beware of them causing confusion. Short variables may be lower case e.g. i in loops.

Standard 49: Use capital letters to begin new name segments within the name.

Guideline 18: Name functions with verb-noun (verb object) combinations. The first letter of functions should be upper case.

Guideline 19: Name variables and structures with noun, adjective noun combinations.

Standard 50: Accessor methods start with the word 'Get' and should be const.

Standard 51: Boolean accessor functions start with 'Is' and return bool.

Standard 52: Mutator procedures start with the word 'Put' and don't return values.

class CFoo
{
public:
    //
    // Accessor
    //
    const BSTR GetName(void) const;
    bool IsNameEmpty(void) const;

    //
    // Mutator
    //
    void PutName(const BSTR name);
protected:
    BSTR m_Name;
};

Standard 53: Factory instantiation functions start with the word 'Create'.

CThread*  CreateThread(void);

Standard 54: Factory destruction functions start with the word 'Destroy'.

void DestroyThread(CThread* threadToDestroy);

Files and Directories

Guideline 20: Name files like variables, describing the functions they contain. Long file names are encouraged.

Standard 56: Use .cpp and .h for class definition source and header file suffixes.

Standard 57: Any procedural code written should be compiled in C++ .

Rationale: C++ compilers provide much stricter type checking than C compilers. The stronger type checking is well worth using, even if the code does not take advantage of the object oriented features of C++ .

Guideline 23: Name directories like nested structures.

Usage

Guideline 24: There are no circumstances where goto is allowed.

Guideline 25: Avoid deep nesting of statements, parentheses, and structures.

Guideline 26: All assignments shall stand alone, unless a series of variables are being assigned to the same value.

Standard 58: Do not use comparisons in mathematical expressions.

numberOfDays = ( get_IsLeapYear() == TRUE ) + 28; // not OK

Guideline 59: All non-boolean comparison expressions should use a comparison operator. Do not use implicit != 0.

ASSERT(pObject != 0); // good

ASSERT(pObject); // bad

Guideline 27: Avoid assignment in comparisons, except where the alternative is significantly more complex.

Standard 60: Use explicit casting, instead of the compiler default.

DWORD UnsignedValue(0); REAL RealValue(3.7); BigValue = DWORD(RealValue);

Also note that the class operator overloads should be used as a preference for upcasting and downcasting:

class CFoo
{
public:
    operator DWORD(void) const
    {
        return DWORD(m_Value);
    }

    operator SHORT(void) const
    {
        return SHORT(m_Value);
    }

protected:
    REAL m_Value;
};

Guideline 28: Default to pre-increment and pre-decrement unless the post-increment/decrement operators are logically necessary.

Guideline 29: Minimize negative comparisons.

Guideline 30: Minimize use of the comma operator.

Conditionals

Guideline 31: Use if ( cond) ...else rather than conditional expressions ( ( cond) ? : ) if only to clarify the intended operation.

Guideline 32: Use nested if only to clarify the intended order of evaluation.

if( Foo() == true )
{
    if( Bar() == true )
    {
    }
}

-- VERSUS—

if( Foo() && Bar())
{
}

Standard 61: In a switch statement, make all cases independent by using break at the end of each. All switch statements should have a default. If all cases have been handled, then the default should never be NEVER_GET_HERE. This is also true for if...elseif...else blocks.

Standard 62: Use if...else for two alternative actions. Put the major action first. Exceptions to this standard are checks at the top of a function.

Loop Constructs

Guideline 33: Count for loops in ascending.

for(int x(0); x < ListSize; ++x)
{
    // code
}

Standard 63: Use for loops when the loop control needs initializing or recalculating; otherwise, use while.

// go backwards down array
x = ArrayOfThings.GetSize();
while(x-- > 0)
{
    Array[x].DoSomethingWithThing();
}

Standard 64: Use while( 1 ) to implement an infinite loop. Make its usage clear with comments.

Guideline 34: Be careful with the logic of do loops. Use do...while( !(...) ) to loop until a comparison becomes true.

Guideline 35: Minimize use of break in loops. Only use it for abnormal escape.

Guideline 36: Use continue sparingly. Clearly comment why continue is used.

Data

Guideline 38: Beware of operations with constants going out of range.

Standard 67: Use single-quoted characters for character constants, but never single-quote more than one character (or hex for non-printing).

Standard 68: Use sizeof rather than a constant.

Standard 69: Do not compare floating point numbers for equality.

Standard 70: Assign to all data members in operator=.

Standard 71: Check for assignment to this in operator=. If assignment to this is attempted, simply return from the function.

MyClassRef MyClass::operator=(MyClassCref aRef)
{
    if( this != &aRef )
    {
        // do the assignment
        ...
    }
    else
    {
        ; // do nothing
    }
    return *this;
}

Standard 72: Make sure operator= invokes any parents' operator=, except with virtual inheritance.

Initialization

Standard 77: Explicitly initialize static data.

Standard 78: Initialize all variables at the time they are declared to the appropriate value. If the value is not yet known, initialize pointers to simple types to zero or NULL.

Standard 79: List members in a constructor initialization list in order in which they are declared in the class header.

Standard 80: Check for empty pointer or handle by comparison with NULL.

Declaration

Guideline 40: All data should be defined as close as possible to where it is needed.

Guideline 41: Use floating point numbers only where necessary.

Guideline 42: Do not use global data. Consider putting global information in the context of a static class.

Guideline 43: Do not use unions.

Guideline 44: Do not use bit structures.

Programming

Guideline 45: Make sure interface definitions are clear and sufficient.

Guideline 46: Defend against system, program and user errors. Heavy use of assertions and exceptions are encouraged.

Guideline 47: Enable the user and the maintainer to find sufficient information to understand an error. Include enough diagnostic information to give an accurate picture of why the error occurred.

Guideline 48: Do not use arbitrary, predefined limits( e.g. on symbol table entries, user names, file names).

Standard 87: Use the same form in corresponding calls to new and delete (i.e. new CFoo uses delete pFoo and new CFoo[100] uses delete [] fooArray.

Guideline 50: Know what C++ silently creates and calls (e.g. default constructor, copy constructor, assignment operator, address-of operators(const and not), and the destructor for a derived class where the base class's destructor is defined.)

Standard 88: Ensure that objects (both simple and class) are initialized before they are used.

Standard 83: Eradicate all compiler warnings. Set the compiler to the highest warning level. Any unavoidable warnings must be explicitly commented in the code. Unavoidable compiler warnings should be extremely rare.

Class and Functions

Guideline 51: Strive for class interfaces that are complete and minimal.

Guideline 52: The programmer should only have to look at the .h file to use a class.

Guideline 53: Do not put data members in the public interface.

Standard 90: Pass and return objects be reference instead of value whenever possible.

Standard 91: If the passed object is not going to be modified then pass it as a const reference.

Standard 92: The keyword class will appear in the left most column. If declaring the class in the scope of a namespace, then class will be indented appropriately.

Standard 93: The member access controls appear flush with the class keyword.

Standard 94: Access controls that have no members may be omitted.

Standard 95: Access controls appear in the following order

public: // Public method declarations

protected: // Protected method declarations

private: // Private method declarations

protected: // Protected class data members

private: // Private class data members

comments here are for clarification.

Standard 96: The virtual or static declarations appear in the first indentation level from the class declaration.

Standard 97: The return type of a class method or the storage type of a class data member appear after the first tab position beyond the space were virtual applied.

Standard 98: Method identifiers follow the return type and should be reasonably lined with other method declarations.

Standard 99: In each access control group for methods, Constructors are followed by destructor, followed by operator overloads, followed by accessors followed by mutators.

class CMyClass
{
public:
    /// Default constructor
    CMyClass(void)

    /**
    Copy constructor
    @param Object constant reference
    */
    CMyClass(const Object& init);

    /// Destructor
    virtual ~CMyClass(void);

    /**
    Equality operator overload
    @param CMyClass constant reference
    @return bool - true if equal, false otherwise
    */

    bool operator==(const CMyClass& copy);

    //
    // Accessors
    //

    /**
    Get the number of MyClass instantiations.
    @return Int const reference to count
    */
     static const INT GetInstanceCount(void);

    /**
    Return the object data member
    @return Object const
    reference
    */

    const CObject& GetObject(void) const;

    //
    // Mutators
    //

    /**
    Sets the something thing
    @param Something const reference
    */

    virtual void PutSomething(const CSomething& something);

protected:
    /// Copy never allowed
    CMyClass(const CMyClass& ) throw(Assertion)
    {
        NEVER_GET_HERE;
    }

    /// Assignment operator denied
    CMyClassRef operator=( const CMyClass& ) throw(Assertion)
    {
            NEVER_GET_HERE;
        return *this;
    }

private:
    // No private methods

protected:
    // No public data members

private:
    /// Class instance counter
    static int m_InstanceCount;
};

Guideline 54: Don't return a reference, or pointer, when you must return an object, and don't return an object when you mean a reference.

Guideline 55: Avoid overloading on a pointer and a numerical type. (i.e. Foo(char *) vs. Foo(int) - a call to Foo(0) is ambiguous).

Standard 100: Do not return handles to internal data from const member functions. If a handle must be returned, make it const.

Standard 101: Avoid member functions that return pointers or references to members less accessible than themselves. Use const !

Standard 102: Never return a reference to a local object or a de-referenced pointer initialized by new within the function.

Rationale: Obviously, when a functions ends, the local object goes out of scope, and the reference is no longer valid. One might attempt to NEW the object in the function instead, but then who would call the corresponding DELETE?

Standard 103: Use enums for integral class constants.

Guideline 57: Use inlining judiciously.

Guideline 58: Inlines cause code bloat, slow down compile times, eat up name space, and not all compilers handle them the same way.

Inheritance

Guideline 59: Make sure public inheritance models 'is-a'.

Guideline 60: Differentiate between inheritance of the interface and of the implementation, and prefer delegation to implementation inheritance.

Rationale: Inheritance of the interface only is forced by making a function pure virtual- its implementation must be defined by the derived class. Inheritance of implementation occurs when the function is declared as simple virtual-derived classes may or may not override the implementation.

Standard 106: Never redefine an inherited non-virtual function.

Standard 107: Never redefine an inherited default parameter value.

Guideline 61: Use private inheritance judiciously.

Guideline 62: Differentiate between inheritance and templates.

Rationale: If the type of the object being manipulated does not affect the behavior or the class, then a template will do. However, if the type of the object DOES affect the behavior, then virtual functions should be used through inheritance.

Object-Oriented Considerations

Standard 109: Factor our common code into an ancestor.

Guideline 63: Encapsulate external code within an operation or class.

Guideline 64: Keep member functions small, coherent and consistent.

Guideline 65: Separate policy member functions (e.g. error and status checkers) from implementation member functions (computational).

Standard 110: Do not use indirect function calls unless absolutely necessary.

Standard 111: Write member functions for all combinations of input conditions. Avoid using modes to distinguish between conditions. Use member function overloading instead.

Standard 112: Avoid case statements on object type; use member functions instead.

Standard 113: Keep internal class structure hidden from other classes. Do not use global or public data.

Standard 114: Do not traverse multiple links or member functions in a single statement. Invoke each member function via a temporary pointer or reference.

Standard 115: Use const wherever a function, parameter or return value will not change.

Guideline 116: All accessor functions should be const.

Error Handling

Standard 117: Use exceptions rather than returning a failure status. However do not use exceptions for conditions that are expected to occur frequently.

Standard 118: Use assertions (ASSERT, VERIFY, NEVER_GET_HERE) liberally.

File Layout

Guideline 66: Use functional cohesion to group similar items.

Guideline 67: Source files may be split up along boundaries between class administrator, accessor, mutator and provider functions.

Standard 123: A class shall have a single header file.

Guideline 68: Layout data files to reflect the systems they serve.

Standard 124: Do not reserve memory in header files.

Standard 125: Minimize header file interdependence.

Guideline 69: Keep function length in code files to within one or two pages (100 lines).

Guideline 70: Keep modules small. Each module should be functionally cohesive and should be as small as possible. Modules should not exceed 10-15 pages in length.

Guideline 71: Classes with a large number of functions should break the implementation into several .CPP files. These files should be functionally cohesive.

Header File Layout

Standard 126: All headers must be wrapped to prevent multiple inclusion.

#if !defined(__MYHEADER_H__)
#define __MYHEADER_H__

...

#endif // __MYHEADER_H__

-OR-

#pragma once

Standard 127: The wrapper must be the name of the file, prefixed with a double underscore __ and followed by _H__. (i.e. __COMMON_H__).

Standard 128: public, protected and private line appear in column 0 within a class definition.

Standard 129: Types, returns, member names, functions must be lined up consistently in header.

Standard 130: Trailing comments must be aligned within the module.

Bibliography

Grady Booch.

Object Oriented Analysis and Design With Applications.

Benjamin/Cummings, Redwood City, CA, 2nd edition, 1994.

The Corelinux Consortium.

The Corelinux C++ Coding Standards.

The Corelinux Consortium, 1.3 edition, May 2000a.

http://corelinux.sourceforge.net/cppstnd.php.

The Corelinux Consortium.

The Corelinux Object Oriented Design Standards.

The Corelinux Consortium, 1.3 edition, May 2000b.

Phillip B. Crosby.

Quality Is Free.

McGraw-Hill, New York, NY., 10020, 1976.

FSF.

GNU Autoconf Manual.

FSF, 2.13 edition, 1999.

FSF.

GNU Automake Manual.

FSF, 1.4 edition, 2000a.

FSF.

GNU Libtool Manual.

FSF, 1.3.4 edition, 2000b.

D.E. Knuth.

Structured programming with goto's.

ACM Computing Surveys, Vol 6(No. 4), December 1974.

Bertrand Meyer.

Object Oriented Software Construction.

Prentice Hall, Englewood Cliffs, NJ, 1988.

Inc. Taligent.

The Taligent Guide to Well-Mannered Object-Oriented Programs.

Taligent Inc., Cupertino, CA., 1994.

Frank V. Castellucci 2001-01-01

Modifications John Adcock 2001-07-13


3:2 Pulldown Spec

DScaler Logo 3:2 Pulldown Alogrithm

Mark Rejhon's 3:2 Pulldown Algorithm

Here's a simplified pseudocode implementation of my 3:2 pulldown detection algorithm. You might even easily be able to implement this into DScaler. Almost all of us really don't care about 2:2 pulldown at all as I only see this happening only 0.1 to 0.5% of the time on NTSC television. Without further ado, here you go!

START PSEUDOCODE FOR AUTOMATIC 3:2 PULLDOWN DETECTION

set MAX_MISMATCH = 12
set MAX_VERIFY_CYCLES = 2
set MISMATCH_COUNT = 0
set MOVIE_FIELD_CYCLE = 0
set MOVIE_VERIFY_CYCLE = 0
set MODE = VIDEO
set FRAMES_PER_SECOND = 60
LOOP
    IF new field has now arrived on TV card
        //
        // Automatic detection code starts here
        // Compares a pair of even fields or a pair of odd fields.
        //
        GRAB new current field (add to queue of fields)
        COMPARE two fields: current field and two fields ago.
        IF fields DO NOT match THEN
            IF MISMATCH_COUNT does not exceed MAX_MISMATCH
                increment MISMATCH_COUNT by 1
                //
                // MISMATCH_COUNT is the number of consecutive pairs
                // of fields that do not match.
            ELSE
                set MODE = VIDEO
                set MOVIE_VERIFY_CYCLE = 0
                set MOVIE_FIELD_CYCLE = 0
                //
                // There has been no duplicate fields lately.
                // It's probably video source.
                //
                // MAX_MISMATCH should be a reasonably high value so
                // that we do not have an oversensitive hair-trigger
                // in switching to video source everytime there is
                // video noise or a single spurious field added/dropped
                // during a movie causing mis-synchronization problems.
            ENDIF
        ELSE IF fields match THEN
            // It's either a stationary image OR a duplicate field in a movie
            IF MISMATCH_COUNT is 4
                //
                // 3:2 pulldown is a cycle of 5 fields where there is only
                // one duplicate field pair, and 4 mismatching pairs.
                // We need to continue detection for at least 2 cycles
                // to be very certain that it is actually 3:2 pulldown
                // This would mean a latency of 10 fields.
                //
                IF MOVIE_VERIFY_CYCLE equals or exceeds MAX_VERIFY_CYCLES
                    //
                    // This executes regardless whether we've just entered or
                    // if we're *already* in 3:2 pulldown. Either way, we are
                    // currently now (re)synchronized to 3:2 pulldown and that
                    // we've now detected the duplicate field.
                    //
                    set MODE = MOVIE
                    set MOVIE_FIELD_CYCLE = 0
                ELSE
                    increment MOVIE_VERIFY_CYCLE by 1
                ENDIF
            ELSE MISMATCH_COUNT not equal to 4
                //
                // If execution point hits here, it is probably just
                // stationary video. That would produce lots of duplicate
                // field pairs. We can't determine whether it's video or
                // movie source. Therefore, we want to keep doing the
                // current algorithm from a prior detection. Therefore,
                // don't modify any variables EXCEPT the MISMATCH_COUNT
                // variable which will be reset to 0 below.
                // Also, occasionally we'll hit here during synchronization
                // problems during a movie, such as a spurious field added
                // or dropped. Reset MISMATCH_COUNT to 0 below and let
                // detection cycle happen again in order to re-synchronize.
                // Keep the MODE variable the way it currently is.
            ENDIF
            set MISMATCH_COUNT = 0
         ENDIF
         // Now, process the images depending on present mode
         IF MODE is MOVIE
            // You could replace below with movie source deinterlacer plugin
            //
            set FRAMES_PER_SECOND = 24
            BEGIN movie-source deinterlacer
                IF MOVIE_FIELD_CYCLE equals 2 or MOVIE_FIELD_CYCLE equals 4
                    Weave current field with previous field
                    Add resulting field to OUTPUT queue
                ELSE
                     // Do nothing here.
                     // Do not add frame to OUTPUT queue.
                     // During MOVIE_FIELD_CYCLE 0 and 3, the current and
                     // previous fields come from different movie frames.
                     // During MOVIE_FIELD_CYCLE 1, the current and previous
                     // fields identical movie frame as MOVIE_FIELD_CYCLE 2.
                     // Therefore, we skip these cycle values.
                ENDIF
                    // Looping counter that goes from 0, 1, 2, 3, 4 and back to 0
                    increment MOVIE_FIELD_CYCLE by 1
                IF MOVIE_FIELD_CYCLE equals 5 THEN
                    set MOVIE_FIELD_CYCLE = 0
                ENDIF
            END
        ELSEIF MODE is VIDEO
            // You could replace below with video source deinterlacer plugin
            //
            set FRAMES_PER_SECOND = 60
            BEGIN video-source deinterlacer
                Apply video source deinterlace algorithm
                Add resulting field to OUTPUT queue
            END
        ENDIF
    ENDIF
    // You can put video output code here for the OUTPUT queue of frames.
    // You can optionally synchronize to the output refresh this way.
ENDLOOP

.

EXAMPLE SEQUENCE OF FRAMES FROM 3:2 PULLDOWN

Field 00: Movie frame 1
Field 01: Movie frame 1
Field 02: Movie frame 1
Field 03: Movie frame 2
Field 04: Movie frame 2
Field 05: Movie frame 3
Field 06: Movie frame 3
Field 07: Movie frame 3
Field 08: Movie frame 4
Field 09: Movie frame 4
Field 10: Movie frame 5
Field 11: Movie frame 5
Field 12: Movie frame 5
Field 13: Movie frame 6
Field 14: Movie frame 6

Field 02 and 00 is MATCH --- MOVIE_FIELD_CYCLE = 0
Field 03 and 01 is mismatch - MOVIE_FIELD_CYCLE = 1
Field 04 and 02 is mismatch - MOVIE_FIELD_CYCLE = 2
Field 05 and 03 is mismatch - MOVIE_FIELD_CYCLE = 3
Field 06 and 04 is mismatch - MOVIE_FIELD_CYCLE = 4
Field 07 and 05 is MATCH --- MOVIE_FIELD_CYCLE = 0
Field 08 and 06 is mismatch - MOVIE_FIELD_CYCLE = 1
Field 09 and 07 is mismatch - MOVIE_FIELD_CYCLE = 2
Field 10 and 08 is mismatch - MOVIE_FIELD_CYCLE = 3
Field 11 and 09 is mismatch - MOVIE_FIELD_CYCLE = 4
Field 12 and 10 is MATCH --- MOVIE_FIELD_CYCLE = 0
Field 13 and 11 is mismatch - MOVIE_FIELD_CYCLE = 1
Field 14 and 12 is mismatch - MOVIE_FIELD_CYCLE = 2

.

OPTIONAL: BETTER SYNCHRONIZATION TO MONITOR REFRESH

It is desirable to make the output refresh independent of the input refresh for better synchronization. During 3/2 pulldown material, it is very desirable to synchronize to the monitor refresh instead of the input TV signal refresh. During watching in normal TV viewers, 3/2 pulldown is doubled to 6/4 pulldown when the refresh rate is doubled to 120 Hz. It would be very nice to have something closer to 5/5 pulldown when watching movie material instead of 6/4 pulldown.

In the pseudocode above in the last section,
There are 24 frames per second in OUTPUT queue in MOVIE mode
There are 60 frames per second in OUTPUT queue in VIDEO mode

You can synchronize the OUTPUT queue of fields to the monitor refresh, based on the value in the FRAMES_PER_SECOND variable. By keeping a small output buffer of frames (of about 2 or so frames) you can keep the pipeline of output frames flowing smoothly and synchronized much better to the computer monitor.

Also, since the computer clock is accurate, this can help "stabilize" unstable NTSC refresh such as those from a VCR which can sometimes have slightly-varying refresh rates (fluctuating randomly as low as 59Hz all the way up to 61Hz although usually by smaller increments). This can interact badly with a consistent computer refresh. Regular TV sets have a very slight amount of "give" that allows it to compensate for very minor fluctuations in refresh rate, but computer monitors won't compensate.

It can also smooth out jerkiness problems caused by fluctuating CPU usage on a frame-by-frame basis, since deinterlacing one pair of frames might take longer than deinterlacing a different pair of frames (using certain video source deinterlacing algorithms).

There is also the problem of compensating for drift when the output framerate is decoupled from the refresh of the input signal. There are two good possible ways of getting around this drift problem:

(1) AVOID displaying the output frame if there is less than 2 frames in the OUTPUT queue, and ACCELERATE displaying of the next frame if the number of frames in the OUTPUT queue exceeds a predetermined value such as 4. That way, you always keep 2, 3 or 4 frames buffered at all times for maximum fluidity. (You could experiment, and set the minimum to 1 and maximum to 3, to find out which produces the best fluidity at the minimum possible buffering. Too much buffering will cause audio to be noticeably lagged behind the video)

(2) Synchronize to a clock that's generated from the TV tuner card, instead of using the computer's clock. For example, increment an integer clock counter by 1 everytime a field arrives from the TV card. This clock would be incremented about 59.94 times per second for most NTSC signals. Keep an eye on the computer's clock everytime you increment the integer clock by 60 - to calculate the exact amount of time it takes for 60 fields to hit the TV tuner card. Do this continously every second. Divide this value by 24 to compute the amount of time there should be between frames, during MOVIE mode, during the next second. (If you prefer, you could use 5 second cycles instead of 1 second cycles, or keep a "rolling average" every field based on the previous X number of fields).

.

APPENDIX: PSEUDOCODE WITHOUT COMMENTS

For determining the amount of "code bulk", this is how small the pseudocode is, when I remove my comments from the above pseudocode. Look at how small the pseudocode is - since you already have the routines written in DScaler, look at how simple it is to implement automatic 3:2 pulldown deinterlacing!

set MAX_MISMATCH = 12
set MAX_VERIFY_CYCLES = 2
set MISMATCH_COUNT = 0
set MOVIE_FIELD_CYCLE = 0
set MOVIE_VERIFY_CYCLE = 0
set MODE = VIDEO
set FRAMES_PER_SECOND = 60
LOOP
   IF new field has now arrived on TV card
     GRAB new current field (add to queue of fields)
     COMPARE two fields: current field and two fields ago.
     IF fields DO NOT match THEN
         IF MISMATCH_COUNT does not exceed MAX_MISMATCH
             increment MISMATCH_COUNT by 1
         ELSE
             set MODE = VIDEO
             set MOVIE_VERIFY_CYCLE = 0
             set MOVIE_FIELD_CYCLE = 0
         ENDIF
     ELSE IF fields match THEN
         IF MISMATCH_COUNT is 4
             IF MOVIE_VERIFY_CYCLE equals or exceeds MAX_VERIFY_CYCLES
                 set MODE = MOVIE
                 set MOVIE_FIELD_CYCLE = 0
             ELSE
                 increment MOVIE_VERIFY_CYCLE by 1
             ENDIF
         ELSE MISMATCH_COUNT not equal to 4
         ENDIF
         set MISMATCH_COUNT = 0
     ENDIF

     IF MODE is MOVIE
         set FRAMES_PER_SECOND = 24
         BEGIN movie-source deinterlacer
             IF MOVIE_FIELD_CYCLE equals 2 or MOVIE_FIELD_CYCLE equals 4
                  Weave current field with previous field
                  Add resulting field to OUTPUT queue
             ENDIF
             increment MOVIE_FIELD_CYCLE by 1
             IF MOVIE_FIELD_CYCLE equals 5 THEN
                 set MOVIE_FIELD_CYCLE = 0
             ENDIF
         END
     ELSEIF MODE is VIDEO
         set FRAMES_PER_SECOND = 60
         BEGIN video-source deinterlacer
             Apply video source deinterlace algorithm
             Add resulting field to OUTPUT queue
         END
     ENDIF
   ENDIF
ENDLOOP

(c) Mark Rejhon 2000


DScaler -- Fast Memory Access

DScaler Logo Fast Memory Access Setting

This setting can be found in many of DScaler’s filters. It enables a fast way to access memory known as prefetching.

You’ll probably want to keep this setting turned on. With it enabled, the filters can run up to twice as fast.

However, there are a few motherboards — mostly made by VIA — for which fast memory access will cause problems. If you see fleeting horizontal lines in your picture, try turning this off in any filters which offer it. If that fixes the lines, you’ll know to keep this setting disabled.


/*********************************************************************************
 *                                                                               *
 * MultiDec                                                                      *
 *                                                                               *
 * Copyright (C) 1999/2000 Espresso                                              *
 *                                                                               *
 *                                                                               *
 * This program is free software; you can redistribute it and/or                 *
 * modify it under the terms of the GNU General Public License                   *
 * as published by the Free Software Foundation; either version 2                *
 * of the License, or (at your option) any later version.                        *
 *                                                                               *
 *                                                                               *
 * This program is distributed in the hope that it will be useful,               *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                 *
 * GNU General Public License for more details.                                  *
 *                                                                               *
 *                                                                               *
 * You should have received a copy of the GNU General Public License             *
 * along with this program; if not, write to the Free Software                   *
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.    *
 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html                *
 *                                                                               *
 *                                                                               *
 * Some Parts are based on the                                                   *
 *                                                                               *
 * Driver for the Siemens Fujitsu DVB PCI card                                   *
 * Copyright (C) 1999 Ralph Metzler for convergence integrated media GmbH        *
 *                                                                               *
 * bttv - Bt848 frame grabber driver                                             *
 * Copyright (C) 1996,97,98 Ralph  Metzler && Marcus Metzler                     *
 *                                                                               *
 * I2C Interface                                                                 *
 * Copyright (C)  1998 Gerd Knorr                                                *
 *                                                                               *
 * programming the msp34* sound processor family                                 *
 * Copyright (C)  1997,1998 Gerd Knorr                                           *
 *                                                                               *
 * saa7146 device driver                                                         *
 * Copyright (C) 1998,1999 Michael Hunold                                        *
 *                                                                               *
 *                                                                               *
 * Die Treiberschnittstelle basiert auf einer alten Trail-Version von WinDriver  *
 * Leider fehlt mir das Geld um eine Vollversion zu kaufen, aber die abgespeckte *
 * Demoversion beinhaltet alle Funktionen die ich benötige.                      *
 * Jedem, der sich mit Treiberentwicklung beschäftigt (und das nötige Geld       *
 * zur Verfügung hat), kann ich dieses Teil nur empfehlen !                      *
 *                                                                               *
 *********************************************************************************/

/**************************************************************************************************************/
MultiDec Version 5.6

IRQ-Routinen geändert
Es sollten die Schmierzeichen beim EIT weg sein.

Benötigt im DVB-Betrieb nun weniger speicher.

Datumsauflösung DVB

RAW-OVERLAY im DVB-Modus nun verfügbar !!!!

Damit schreibt der SAA direkt in den Overlay Bildschirmspeicher.

Achtung!!!!
Der RAW-Modus BT-Chip oder DVB-Overlay ( Nicht Raw ) benötigt den Graka-Triber im FOURCC = YUY2
Der RAW-DVB-Moder benötigt einen FOURCC = UYVY

Es kann also sein, das ihr zwar Overlay machen könnt, aber der RAW-DVB-Modus nicht geht !!!

VideoRecorder-Funktionen DVB

Wichtig ::
==========

Der Recorder ist z.Zt. ( auf meinem LOW-End-PC ) sehr empfindlich !!
Die OSD-Funktionen behindern teilweise die Aufnahme. Es kann zu Störungen kommen.
Die Wiedergabe geht am besten im RAW-Modus.
Am besten, ihr sucht die bei euch zuerst die passenden Einstellungen, da es sich dabei um Timingprobleme
beim Zugriff auf die DVB-Karte handelt.

Menü Recorder

1. Einstellungen für Recorder

Es können da bis zu 8 Platten ( Verzeichnisse ) angegeben werden, in denen Die Daten abgelegt werden sollen.
Ist die erste Platte voll, wird automatisch auf die nächste weitergeschaltet.

Recorder Format :

PR_NONE  : ist NIX
AudioPES : Nur AudioDaten im PES-Format
AudioMP2 : Nur AudioDaten im im MP2 - Format
AudioPCM : Nur AudioDaten im PCM-Format ( Kann nicht wiedergegeben werden )
VideoPES : Nur VideoDaten im PES-Format
AV_PES   : Audio und VideoDaten im PES-Format

2. Zeitgesteuerte Aufnahme

Entspricht der Timerfunktion eines Videorecorders
( Achtung : Nur minimale Prüfung der eingegeben Daten )
Eine Zeile kann gelöscht werden, in ein Eintrag in dieser Zeile leer ist

Record   (Alt+A) Starten der Aufnahme
Stop     (Alt+Q) Stoppen der Aufnahme/Wiedergabe
Play     (Alt+Y) Starten der Wiedergabe

Pause    (Alt+P)   Unterbricht die Aufnahme/Wiedergabe
Schnell  (Alt+F)   Schnell vor bei der Wiedergabe
Zeitlupe (Alt+G)   Zeitlupe bei der Wiedergabe

Diese Funktionen sind auch im OSD-Menü Taste T verfügbar. ( Play noch nicht implementiert )
Aber Achtung : Siehe oben bei WICHTIG

Probiert es mal aus !!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 5.5

Sehr vieles NEU !!!!!

NEU : Kanalliste überarbeitet

ANALOG
Bug ( erst Ton dann Nix mehr ) beseitigt;
VT geändert;

Dank an chilli

Habe mal mit einer html-Speicherung angefangen, ist aber noch nicht fertig. Mir fehlt
dazu einfach die Zeit.

DIGITAL

EPG

OSD-Funktioen

Funktionen im Menü OSD oder den entsprechenden KEY ( Direkt für die Fernbediener eingebaut )

EPG-Liste Current Next  <Taste Z>
Programmheft für Aktuelle und nächste Sendungen über diverse Sender

Angezeigt werden der
Sendername  StartZeit  Titel

OSD-Steuerung :
Taste                              Funktion
0                                  OSD beenden
1 ( Ende auf dem Nummernblock )    Letzte Seite der Liste
7 ( Pos 1 auf dem Nummernblock )   Erste Seite der Liste
8                                  1 Zeile Nach oben
2                                  1 Zeile Nach unten
9                                  1 Seite rauf
3                                  1 Seite runter

EPG-Liste Aktuelles Programm  <Taste P>
Programmheft für den aktuellen Sender

Angezeigt werden der
Datum  StartZeit  Titel

OSD-Steuerung :
Taste                              Funktion
0                                  OSD beenden
1 ( Ende auf dem Nummernblock )    Letzte Seite der Liste
7 ( Pos 1 auf dem Nummernblock )   Erste Seite der Liste
8                                  1 Zeile Nach oben
2                                  1 Zeile Nach unten
9                                  1 Seite rauf
3                                  1 Seite runter

EPG-Detail Aktuelles Programm  <Taste O>
Programmheft für den aktuellen Sender

Angezeigt werden der
Datum  StartZeit  Titel und der gesamte Beschreibungstext

OSD-Steuerung :
Taste                              Funktion
0                                  OSD beenden
1 ( Ende auf dem Nummernblock )    Letzte Seite der Beschreibung
7 ( Pos 1 auf dem Nummernblock )   Erste Seite der Beschreibung
8                                  1 Zeile Nach oben in der Beschreibung
2                                  1 Zeile Nach unten in der Beschreibung
9                                  1 Seite rauf in der Beschreibung
3                                  1 Seite runter in der Beschreibung
4                                  Beschreibung der vorherigen Sendung
6                                  Beschreibung der nächsten Sendung

Audio-Wahl für das aktuelle Programm  <Taste I>
In diesem Menü kann der AudioTräger ausgewählt werden.
OSD-Steuerung :
Taste                              Funktion
0                                  OSD beenden
8                                  1 Zeile Nach oben ( Wird direkt eingestellt )
2                                  1 Zeile Nach unten ( Wird direkt eingestellt )
5                                  Diese PID wird als default genommen und abgespeichert

OSD-Programm-Liste <Taste L>
Kann zum Umschalten verwendet werden

OSD-Steuerung :
Taste                              Funktion
0                                  OSD beenden
1 ( Ende auf dem Nummernblock )    Letzte Seite der Liste
7 ( Pos 1 auf dem Nummernblock )   Erste Seite der Liste
8                                  1 Zeile Nach oben
2                                  1 Zeile Nach unten
9                                  1 Seite rauf
3                                  1 Seite runter
5                                  Umschalten

Programm-Info Aktuelles Programm  <Taste SPACE> oder nach dem umschalten
Programminfo im DVB-Style zum Sender
Verschwindet von Selber

Aktuelle DVB-Uhrzeit <Taste U>
Verschwindet von Selber

Alle diese Funktioen sind im Menü DVB-Daten im Windowsstyle verfügbar und mit mehr
Funktionalitäten.
Geht da mal in den EPG und dann in die Konfiguration

Für die Uhrzeit müßt ihr noch die Zeitzone einstellen
Menü DVB-Daten -> DVB-Datum/Zeit und dort die 2 eintragen

Wem die Farben der OSD-Menüs nicht gefallen, kann diese im Menü OSD->Einstellungen
ändern.

Probiert es mal aus !!!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 5.4

Immer noch HotFix : Analoger Scan sollte nun gehen ( Und neues OutFit )

NEU : Kanalliste neu

- Schöneres outfit ( Meine Meinung )
- Spalten verschiebbar
- Spalten konfigurierbar
- zum SendePlatzwechsel nicht mehr nur auf und ab sondern den Sender anklicken und einfach Zahl
  neue Programmnummer eingeben.
- löschen von Kanälen wie bisher oder den Sender anklicken und einfach d oder D eingeben

NEU : WINBIS

Wird ein und ausgeschaltet wie z.B Videotext. Zur Zeit werden die winbis-daten in eine
html-datei gedumpt. Wer sich an der Analyse beteidigen will ist herzlich willkommen !!!

Gruß Espresso
/**************************************************************************************************************/

/**************************************************************************************************************/

MultiDec Version 5.3B

HotFix : Analoger Scan sollte nun gehen ( Und neues OutFit )

Gruß Espresso
/**************************************************************************************************************/

MultiDec Version 5.3

NEU:
Menü Kanäle im Digitalbereich
Scannen von Transpondern und Frequenzen

Programliste aufgebohrt ( Alte Programmliste ist inkompatibel, daher
muß auch analog neu gescannt werden )

Erste Aufbereitungen der Daten ( NIT / SDT / PAT )

Spielt einfach mal mit rum !!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 5.2

NEU:
Analoger VideoDat für den WDR-Computerclub

Menü->VideoDaten->VideoDat Setup

Folgende Einstellungen sind möglich

1. BasisPfad

In diesem Pfad wird entweder die Raw-Datei abgelegt, oder ab da die Nutzdaten von VideoDat ebgelegt.

2. Nur als RAW-Datei ablegen.
Die gesamte VideoDat-Übertragung wird in eine Datei abgelgt. Diese kann später über den Knopf "Jetzt umwandeln"
ausgepackt werden.
Ist diese CheckBox nicht gesetzt, werden zur Laufzeit die Daten in die Nutzdaten übersetzt.

3. RAW-Dateiname
Dateiname für die Raw-Datei

Ist die Funktion VideoDat im Videodaten-Menü eingeschaltet,
kann der aktuelle übertragungsstatus abgerufen werden.

ACHTUNG:
Läuft eine Videodat-Übertragung, sollte das System möglichst wenig "angefasst" werden. Abhängig von
der Aktion ist MultiDec gezwungen, den Capture-Driver kurz zu stoppen und neu zu starten. Dabei gehen
Blöcke verloren. Der "Sichterste Modus" ist der Ausgabe-Modus DIB, aber z.B. das Sizen des TV-Fensters würde
auch dort Blöcke wegschmeissen.

Ausgabesynchronisaton ( Analog und Digital )
Menü -> Ausgabe -> Mit Karten-Interrupt syncronisieren ( 25 FPS)

"Bremst" die Ausgabe auf 25 FPS beim Free-TV. Die Systemlast wird deutlich weniger, und mehr
FPS ist nur die Ausgabe des gleichen Bildes !!
Damit kann man die Synchronisationsproblem mit manchen Graka´s umgehen !!!!

Änderungen:

Viele viele viele Bugs beseitigt (DVB und Analog)!!!!

Gruß Espresso

/**************************************************************************************************************/

/**************************************************************************************************************/

MultiDec Version 5.1

Einige Default´s verändert ( verbessert )

Digitale Ladezeiten verkürzt.

Bitte mal testen

Im Menü SAA7146 -> Einstellungen -> Firmware prüfen und im Speicher lassen
kann nun ein und ausgeschaltet werden, was mit der DVB - Karte beim Starten/Beenden geschehen soll

Nicht gesetzt:
Beim Starten Karte immer laden und beim Beenden immer Resetten

gesetzt:
Beim Starten Karte prüfen ob geladen und wenn ja nix tun ( meine leichteste Aufgabe )
Beim Beenden Karte "ausschalten", so daß nichts durch den Speicher fegen kann, aber funktionsfähig lassen

Daduch werden die Ladezeiten ( bei bereits gebooteter DVB-Karte ) erheblich verkürzt.

Umschalt-Bug Digital->Analog beseitigt

Speicheraufteilung geändert wg. der Meldung "DVB-Display Memory nicht verfügbar"
(Sollte nun besser sein ( und ggf richtiger ) DVB-Display Memory (Physikalisch Linear) nicht verfügbar ")
Wenn ihr diese Meldung erhaltet, solltet ihr es nach einen Reboot erneut probieren !!

SizingBug in DVB beseitigt.

Und viele viele andere (DVB)!!!!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 5.0

( Alle anderen 4.5 bis 4.9 nie freigegeben )

Kleinere AnalogBugs gefixed
Neue Hardware in MultiDec integriert !!!
Nun können mit MultiDec auch Technotrend bzw. Hauppauge DVB-S Karten betrieben werden.

Damit wird eine DVB-Karte in Win95/98 NT 4 und Windoof 2000 verfügbar, da der Treiber vollständig
in MultiDec ( wie beim BT ) integriert ist. Der Nachteil dieser Vorgehensweise ist : Ich muß
jede Funktion der Technotrend DLL´s neu machen.

Die Unterstützung der digitalen Karten ist erst am Anfang. Zur Zeit erst einmal nur Bild und Ton.
An dieser Ecke ist noch sehr viel zu tun, aber ich möchte erst einmal das Know-How über diese
Karten verbreiten.

Folgende Punkte fehlen noch :

Scannen des Sat oder Transponders. Derzeit kann nur eine DVB-Datei importiert werden. Ich habe mal
ein Muster beigelegt. Wer sich mit digitalem TV beschäftigt, weiß woher diese Datei kommt .

Es fehlt noch alles in Richtung EPG. Wird folgen :-)

Keinerlei Decording. ( Kann erst viel später in Angriff genommen werden )

Ich hoffe mit diesem Ansatz die Neugier von Techotrend zu erwecken um an dringend benötigte Paperware zu kommen.
( Die BT-Karten sind ja auch weggegangen wie warme Semmeln :-)

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 4.4

Integrierter Sound-Decoder

und viele Bug´s gefixed

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 4.3

Multiprozessorsysteme werden nun unterstützt. ( Sie MultiDec.ini )
Videocrypt-Engine überarbeitet !!!
Beim Zappen über Composite wird nun ggf, der BT-Chip automatisch geresettet.
Audioschrittweite vergrößert ( Hotkey vV )
Bildschirmschoner und/oder PowersaveMode deaktiviert

Bei VT wird nun erst einmal auf DIB geschaltet

Neue Hotkeys

t                      Starten Videotext Klein
T                      Starten Videotext Groß
Ctrl+T                 Ende VideoText

Cursor Links oder <    vorherige VT-Seite
Cursor Recht oder >    nächste VT-Seite
Cursor Hoch oder q     vorherige VT-Roll-Seite
Cursor Runter oder a   nächste VT-Roll-Seite

Ctrl+W                 VC-Chromakeying an/aus

Ctrl+E  Programmende

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 4.2

Videocrypt-Engine ist neu !!!
Bitte nicht mit den Keys rumspielen, das ist erst einmal nur für mich.
( Ich denke die SimulCrypt-Sender ( VC/I und VC/II ) sind da noch anfällig für :-) , bin
aber noch am testen ( Es soll ja auch nich eine 4.3 kommen ))

Verbesserter Secam-Support eingebaut !
Der Rot-Blau Filter kann im Menü Decording->Nagravision->Secam-Threshold eingestellt werden
oder über Hotkeys.

Es kann nun zur Laufzeit zwischen den diversen KEY´s umgeschaltet werden.
Im Menü Decording->Nagravision->KeySet auswählen können entsprechende einstellungen gemacht werden
Dadurch kann zur Laufzeit zwischen Pr...... und C+ hin und her geschaltet werden, ohne das eine
Datei neu erzeugt werden muß

Default-Einstellung ist KeySet 1 : 	Wie bisher
                        KeySet 2 :      C+

Neue HotKeys

iI      Secam-Threshold V (Rot)  seuil de détection de ligne rouge
uU      Secam-Threshold U (Blau) seuil de détection de ligne bleue
Ctrl+B  Secam-Blaufilter an/aus  Filtre Secam Lignes violettes Activé/Désactivé

H     Show/Hide Cursor

ALT+1   KeySet 1 anwählen
ALT+2   KeySet 2 anwählen
ALT+3   KeySet 3 anwählen
ALT+4   KeySet 4 anwählen

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 4.1

Viele ( Sehr viele ) Bugs gefixed

*** Änderungen ***

PLL initialisieren

Die Einstellung zur Initialisierung wurde aus den BT8x8->IFORM - Parameter entfernt.
Damit entfällt das OK - Feature :-)
Steht jetzt in BT8x8->PLL - Einstellungen. ( Siehe Neuerungen )

NAGRA-Decoding-Setup

Die Sache mit den UnLOCKFPS etc. entfällt. ( Siehe Dialog Nagravision-Setup )
Einige Ungereimtheiten in diesen Funktionen waren für die Plattenzugriffe mit
den damit verbundenen Dekodieraussetztern verantwortlich.
Eine neue Funktion eingesetzte, die nicht konfiguriert werden muß.

AUTOLOCK,AUTOMOVIEBOOST

Geändert/verbessert

InterCast

Datendurchsatz verbessert
Realloc Fehler sollte weg sein ( Und der damit verbundene Blue-Screen )
Packet-Längen-Fehler weitestgehend beseitigt.

VideoText

Einige interne Fixes

** NEUERUNGEN **

Menü BT8x8 an -> PLL-Einstellungen

Für Hauppage-Karten oder diverse Andere, eigentlich alle TV-Karten vom Typ BT878/BT879
muss in der Regel PLL ( 28 MHz crystal ) angeklickt sein.

Folgende Einstellungen sind möglich : Für PAL mit einem 28.63636 MHz Quarz
                                      Für NTSC mit einem 35.46895 MHz Quarz

Menü BT8x8 an -> Einstellungen -> Video

Ein neuer Schieber drinnen für die gleichzeitige U und V Farbveränderung!

Menü Ausgabe  -> ToggleTV-Settings

Es gab immer einige Beschwerden über den Rand im TV-Modus ( Ohne Menü etc... )
Im neuen Dialog TV-Modus Einstellungen kann nun eingestellt werden, ob man Mit oder
Ohne Rand sehen möchte.
ACHTUNG : Ohne Rand ist kein Sizen möglich !!!!!!!

Menü Ausgabe  -> Audio-Mixer Einstellungen

Ab der Version 4.1 kann MuldiDec nun das Sound-Device steuern
Zur Konfiguration solltet ihr in das Menü Audio-Mixer Einstellungen gehen.

Beim ersten Start wird das Device zur Volume-Steuerung und zur Mute-Control automatisch
gesucht. ( Ob das immer das Richtige ist ???? )

In diesem Dialog stehen die zugewiesenen Controls und die Steuerung. Bei Problemen:

Starten von MultiDec und der Lautstärkeregelung ( in der Regel: Start->Programme->Zubehör->Multimedia)

Schauen ob sich beim Schalten der Mute-Einstellung oder einer Lautstärkeregelung aus MultiDec
das richtige Control in der Lautstärkeregelung verändert.

Wenn ja alles OK, wenn nein dann muß das neu Zugewiesen werden.
Klickt dazu auf Zuweisen.

In den Drop-Down-Listen Device, Ausgang und Eingang könnt ich das Mixer-Control anwähen.
In der Liste Control findet ihr die dortigen Items. Ihr müsst nun die Controls für Volume und Mute
suchen. Dazu wählt im entsprechende Device der richtigen Ausgang / Eingang an und die Controls an.
Im Control Item Feld des Fensters werden euch die Namen diese Controls angegeben. Ihr habt das richtige
gefunden, wenn sich bei der Lautstärke-Regelung über die Lautstärkeregelung die Werte im aktuellen Zustand
ändern. Diese könnt Ihr dann im Feld Verwenden als entsprechend zuweisen. Über die Liste der zugewiesenen
Controls könnt ihr auch direkt ( mit Doppelklick ) in die Controls springen.

Bei Programmstart so setzten : Damit kann z.B. eine eingeschaltete Mute beim Programmstart immer ausgeschaltet
werden oder besondere Einstellungen ( Bass etc. ) treffen. Diese Einstellungen müssen über die Lautstärkeregelung
getroffen werden und dann in der CheckBox Bei Programmstart so setzten so abgelegt werden.

Weiters siehe neue HotKeys !

Alles Klar !!!

Menü Video-Daten Einstellungen für automatische Dekodiererkennung

Damit kann das verhalten für die automatische Dekodereinschaltung gesteuert werden.
Nagravision und/oder VideoCrypt.
Für Kabelbenutzer ist es sinnvoll Naravision ein und VideoCrypt auszuschalten.
Damit kann nun MTV Problemlos gesehen werden. ( MTV sendet VC-Daten ( als ob es Kodiert ist)
um den englischen Zuschauern das sehen schwer zu machen (Beim Umschalten auf MTV mit einem VideoCryptReceiver
wird das entschlüsselte Bild verschlüsselt )

Menü Decoding -> Nagravision Setup

Eine Punkte in diesem Dialog sind wg. Programmänderungen entfallen

** NEUE HOTKEYS **
( Für die Fernbediener :-)

Groß und Kleinschreibung beachten

yY    Balance nach Links
xX    Balance nach Rechts

C     Mehr Farbe
c     Weniger Farme

V  oder  <NUMBLOCK>+   Lauter
v  oder  <NUMBLOCK>-   Leiser

B     Mehr Helligkeit
b     Weniger Helligkeit

K     Mehr Kontrast
k     Weniger Kontrast

mM    Mute an/aus

Viel Spaß

Espresso

/**************************************************************************************************************/

MultiDec Version 4.0

Alles in der VBI-Bearbeitung ( Vertical Blanking Interval ) ist neu !!!!

VideoText :

Alle Seiten im Cache.
Rollseiten nun anwählbar ( Beispiel Seite 1/3 etc.. )
Status vom Videotext.
Spezieller Untertitel-Modus ( Textfenster mit den letzten Dialogen !!! )

TSDP - Auswertung
PDC  - Auswertung  Programme Delivery Control
VPS  - Auswertung

Intercast :

Die Daten von ZDF und DSF ( DSF konnte ich nicht testen !! ) werden nun abgelegt, und können
über einen Browser aufgerufen werden !!

VC-Keyangabe

Automatische Erkennung :

Nagravision/Syster

VideoCrypt I DekoderModus
VideoCrypt I
VideoCrypt II
VideoCrypt I/II Simulcrypt

ACHTUNG : Das mit VC ist noch nicht 100 Prozentig !!!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 3.9

Einige kleine Bugfixes !!

Nein,Nein: Ihr habt nichts verpasst. Diese Habe ich nie freigegeben !!!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 3.8

Mal wieder eine neue Version mit relativ vielen Änderungen

(TUBE) Funktion. Mit einem Mausklick in das TV-Fenster läßt sich das Menu und die Statuszeile
und ausschalten.

Nagra
Die Nagra-Routienen auf asm umgestellt. (Etwas mehr Performance und kleiner Verwaltungsdateien)
Dadurch müssen die NagraXX.idx neu berechnet werden ( läuft automatisch ) Diverse Bugs beim umschalten
zwischen den verschieden Testzeilen beseitigt.

VideoCrypt

Ich Schiebe den BT jetzt in einen speziellen Mode.
Auch diverse Bugs beseitigt und vieles Neu :

Eingaben in VideoCrypt-Setup

Linker Rand
Ist abhängig vom eingestellten Sender, aber 10 ist fast immer gut.
Default : 10

Anzahl TestPixel für Y-Correction.
Wieviele TestPixel für die Vor-Correlation einer Zeile gegeneinander Geshiftet werden sollen.
Jeh mehr umso langsamer umso besser. Werte von 16-127
Default : 32

Chroma-Keying aktivieren
Schliesst die Farbauswertung mit ein.

Farb-Fake aktivieren
Berechnet Aufgrund der angenommenen Durchschnittsfarbe einer TV-Zeile die Farbe der
VC-Zeile.

Chroma-Correction aktivieren
Berechnet Aufgrund der angenommenen Durchschnittsfarbe einer TV-Zeile die Farbe der
VC-Zeile. Diese werden dann gegeneinander verschoben bis es passt. ( Leider noch nicht so richtig )

FakeU
Angenommener Durchschnittlicher U-Wert einer TV-Zeile
( Default 131 ) Experimentiern Notwendig !!!!

FakeV
Angenommener Durchschnittlicher V-Wert einer TV-Zeile
( Default 231 ) Experimentiern Notwendig !!!!

Anzahl TestPixel für Chroma-Correction.
Bestimmt, wieviele Pixel einer Zeile für die Farbauswertungen genommen werden sollen
Werte von 8-32
Default ( 12 )

Tiefe der C-Correlation
Bestimmt, über wieviel Cutpoints das Chroma-Keying laufen soll.

Bei dem Farb-Fake sollte der Wert deutlich größer sein als bei der Chroma-Correction.
Für Farb-Fake ca. 7 Experimentiern Notwendig !!!!
Für Chroma-Correction ca. 1-4 Experimentiern Notwendig !!!!#

Ich hoffe das bald mit dem Chroma-Keying in den Griff zu bekommen, ist aber noch viel arbeit !!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 3.7

Die Videocrypt-Routine für die Cross-Correlation schwer optimiert.

FineShifting versuche ich derzeit über die Farbdekodierung zu fahren, klappt aber noch nicht so richtig !!!
Es kommt zu Blockverschiebungen. Die Funktion funzt noch nicht so richtig. Ich habe diese Version nur freigegeben wg. diverser Bugs die noch in der
3.4b(d) drinnen waren. Vieleicht geben die neuen Routienen einen Anschub in der VC-Dekodierung.

Diese Freigabe ist mehr für andere Progammierer, die meinen Code ja auch teilweise weiter entwickelt haben.

VC-Hightlights :

VC-Color:

VC_UVColor aus Vcrypt.c
Fill_Chrominanz_Buffer aus Vcrypt.c
Die Farbe wird über MMX berechnet.
Somit sollte die Chromacorrection schneller laufen als über große Tabellen.
(( Warum die noch nicht so richtig funzt weiß ich noch nicht ( Hinweise erbeten !!!!!! ))

Find_Shift
Liefert den Relativen Offset Pixelgenau ( abhängig von der TestPixeln pro Zeile ), wobei immer 3 Correlationen
gleichzeitig berechnet werden !!!!!!!!!

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 3.6

Diese Version wurde nie freigegeben. Vidercrypt von fft auf eine MMX-Cross-Correlation umgestellt.
Farben in Videochrypt geändert. Bugs in der Nagra-Decoding entfernt und ein bischen mehr speed.

TV-Halbmodus neu. Dies ist die einzige Möglichkeit den 100 Hz. Effekt bei manchen TV-Karten in den
griff zu bekommen.

Lautstärke - Regelung auf Tastatur gelegt ( Die Tasten + und - )

Overall-Performance noch etwas gefunden

Liste der aktuellen Tastenkombinationen

F1			:	Umschalten nächstes Programm
F2			:	Umschalten vorheriges Programm
F3			:	Ausgabe im DIB - Modus
F4			:	TV-Fenster ohne Menü/mit Menü
F5			:	Dekodierung aus
F6			:	Nagra-Dekoder
F7			:	Soft-VC-Decoder
Alt+F7		:	Hard-VC-Decoder ( Channel 5 etc..)
F8			:	Bei Nagra   : Gefunden Dekodiermerkmale beibehalten ( ME MO etc... )
                Bei Hard-VC	: Interrupts für Dekodierung mitzählen
F9			:   Erweiterter Nagra-Dekoder an/aus
F10			:   Programmende

Alt+S		:	Ausgabe auf Surface
Alt+O		:   Ausgabe auf Overlay
S			:   Status ausgeben an/aus

Alt+F2		:   Bildschirmmodus 800*600
Alt+F3		:   Bildschirmmodus 640*480
Alt+F4		:   Bildschirmmodus mit eigener Auflösung
Alt+F5		:   Bildschirmmodus Fenster 768*576

+			:	Lauter
-			:	Leiser

Alt+A		:   Automatische Dekodiererkennung an/aus
Alt+M		:	Automatischer Movieboost ( Nur Nagra-Dekoding ) an/aus
Alt+L		:	Automatischer Lock an/aus

TAB			:   Halbbild-Modus/Vollbild Modus ( Normal TV und Nagra-Dekoding )

Alt+0		:	Movieboost aus
Alt+6		:	Movieboost auf 16:9
Alt+z		:	Movieboost kleiner
Alt+h		:	Movieboost groesser

Ctrl+0		:	Scale aus
Ctrl+6		:	Scale auf 16:9
Ctrl+z		:	Scale kleiner
Ctrl+h		:	Scale groesser

Bild runter :   Bei Nagra weniger Testzeilen aus den alternative Testzeilen
Bild rauf	:   Bei Nagra mehr Testzeilen aus den alternative Testzeilen

Einfache Zahl : Umschalten auf Programm mir der Nummer XX

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 3.5

Diese Version wurde nie allgemein freigegeben. Die einzige Neuerung war der Colormixer, der als
Behindertensehhife eingesetzt wird.
Der Colormixer geht nur in der RGB-Ausgabe ( DIB und Surface ) bei dem Eingabeformat YUV

Ich habe den drinnen gelassen. Vieleicht ist das Teil auch für andere interessant.

Gruß Espresso

/**************************************************************************************************************/

MultiDec Version 3.4d

* AutoLock nach Idee von HankoK verbessert!

Funktionsweise: Die Stabilisierung lockt, wenn 25 bzw. 50 fps erreicht wurden!
        Wenn die FPS-Rate dann eine gewisse Zeit(im NagraSetup einstellbar) unter
        dem jeweiligen FPS-Schwellwert(Full-/HalveFrame) fällt unlockt sie wieder.

        Dadurch wird vermieden, daß wenn die FPS-Rate nur kurz zusammenbricht(schwarzes
        Bild), 	nicht gleich eine neue Stab. gesucht wird.

        Als FPS-Schwellwert kann ruhig 50/25 eingegeben werden!

    Hinweis:Wenn die FPS-RATE unter dem eingestellten Schwellwert liegt, werden die verstrichenen
        Sekunden in der Statuszeile angezeigt.

        Wenn man zwischen Premiere und Teleclub am Reciever wechseln muß(Composite-Videoeingang)
        erkennt AutoLock in Verbindung mit AutoDecode diesen Wechsel, und es wird eine neue
        Stabilisierung gesucht!

mfg

/**************************************************************************************************************/

MultiDec Version 3.4c

Da Espresso ja jetzt im Urlaub ist, hab ich die Zeit genutzt und ein Paar Funktionen in Multidec 3.4b hinzugefügt.
Wenn die Veränderungen gefallen finden, könnten sie ja vielleicht in den nächsten Versionen beibehalten werden
oder von Espresso verbessert werden.

Aber nun zu den Funktionen.

* Umschalten von FullFrame(50fps) und HalfFrame(25fps) mit der Taste TAB während der Dekodierung möglich

* Veränderungen im Menüpunkt Nagravision-Setup

    1. Es sind weitere 5 Testzeilen einstellbar.(Bitte Reihenfolge beachten!) Diese
    Testzeilen können dann auch während der Dekodierung mittels den Tasten "Bild auf" und
    "Bild ab" eingestellt werden.
    Dies ist nützlich wenn man zu viele Testzeilen eingestellt hat und man deshalb nicht auf
    z.B.:50 fps kommt.

    2. Man kann auch noch 2 Frame-Werte einstellen.
    Mit diesen 2 Werten kann man die Funktion AUTOLOCK(Noch in der Testphase) regeln.
    Die 1.Zahl gibt an, ab welcher FPS-Rate die Stabilisierung locken soll.
    Und wenn die Anzahl der FPS unter die 2.Zahl fällt, wird der Lock aufgehoben und es
    wird eine neue Stabilisation gesucht.
    Diese Art des Automatischen Locks ist natürlich nicht perfekt, da die fps-Rate bei
    schwarzen Bildern oft in den Keller geht und der Lock deshalb aufgehoben wird.
    Aber vielleicht habt ihr irgendwelche Ideen, wie man diese Funktion verbessern könnte.

    Diese 2 Framewerte beziehen sich übrigens auf den Fullframe-Modus!

* AutoMovieboost (Alt + A) hinzugefügt(Funktioniert nur, wenn richtige Stabilisation aktiv ist!!!)

* Bei mir trat jedes Mal ein Fehler auf, wenn ich in der INI TVSCREEN=FALSE eingestellt habe.
  Dies funktioniert jetzt bei mir. Da dieser Bug aber nie in den PINBOARDS erwähnt wurde, weis ich
  nicht ob andere auch Probleme hatten.

* Wie oben schon beschrieben wurde die Funktion AutoLock hinzugefügt, diese kann mit der Taste L
  Ein und Aus - geschaltet werden.

* Moviescaling und alle oben angeführten Funktionen in Multidec.ini einstellbar

* Statusbar mit Taste S Ein/Aus - schaltbar
  AutoDecode mit Taste A Ein/Aus - schaltbar
  AutoLock mit Taste L Ein/Aus - schaltbar

* Anzeige der Zustände AutoDecode, AutoLock, Full/Halve Frame und Anzahl der eingestellten
  Testzeilen, in Statusbar links unten, werden angezeigt.

    AD......AutoDekode AN
    MD......Manuelles einstellen der Dekodierung

    AL......AutoLock AN
    ML......Manuelles einstellen des Locks

    HF......HalfFrame
    FF......FullFrame

    xxTZ....Anzahl der eingestellten Testzeilen

(Leider werden die Werte der Stabilisierung beim Ändern der Testzeilen(Bild AUF/AB) und beim
Umschalten von Full- auf HalfFrame(TAB) noch nicht übernommen, es muß also nach dem Umschalten
neu gelockt werden). Am besten funktioniert es, wenn AutoLock aktiviert ist!
Aber wenn Espresso wieder da ist, weis er sicher Rat!

Anmerkung: Diese Version wurde übrigens mit MS VC++ 5.0 erstellt und compiliert, meines Wissens benutzt Espresso
       eine neuere Version(6.x). Wenn also deshalb Probleme auftreten, müßte jemand den SourceCode neu Compilieren.

P.S.:Special thanks to stronzo12 for MS VC++5.0!!

mfg

/**************************************************************************************************************/

MultiDec Version 3.4b

So kurz vor meinem Urlaub habe ich noch eine Reihe von Bugs gefixed

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 3.4

Ich habe Overlay neu gemacht und testen können !!

Bester Performance bei Overlay und DirectX : Overlay-Streching verwenden  ( Beides im Menü Ausgabe )

Im Surface bzw. im Overlay-Modus werden die Menüs nicht mehr überschrieben.

Viel Spaß

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 3.3

VideoCrypt - Decodermodus eingebaut. (Menü Dekording)
** Danke an NewMan für die Tabellen **

Benutzung des DekoderModus

Im Dekodermodus wir ein Teil des Bildes berechnet, um einen der
256 Key zu finden. (Der aktuelle Berechnungsstand wird in der
Statuszeile ausgegeben.)
Im Dekodiermodus kann mit der Taste F8 der MultiDec-VC-Decoder
mit dem IRQ der TV-Karte syncronisiert werden. Dadurch wird es möglich
alle weiteren Fields gänzlich ohne Berechnung auszugeben. Damit
werden z.B. auch schwarze Bilder oder Bilder mit "schlechtem" Inhalt
immer richtig ausgegeben.

** WICHTIG **

Bitte löscht eure MatrixXX.idx Dateien. Die sind u.U nicht richtig
und sollten neu erzeugt werden.

Bug in der NagaDekodierung Mode ME MO entfernt. Die sollte nun
einiges schneller sein. ( Das verschwinden der PAL-Plus-Zeile
wird nun für beiden Fields bei 16:9-Filmen vollständig kompensiert)

Overlay noch etwas überarbeitet.

Für alle mit Sound-Problemen !!!!!
Ab der Version 3.3 wird der 3 Byte GPIO unterstützt.
( Bisher nur 2 Byte )

In der MultiDec.ini den Schalter SAVESETTING=FALSE; auf SAVESETTING=TRUE;
Orginale TV-Soft starten und mit Bild und Ton laufen lassen.
MultiDec starten!
!!ACHTUNG!!
Beim Starten von MultiDec kann sich das System nun aufhängen.
Also Doktorarbeit speichern;-)

Es wurde im Programmverzeichniss von MultiDec eine Datei Setting.BT
erzeugt.
Wichtig ist der letzte Abschnitt:
Beispiel:
*********************************************
Ausgelesene Einträge für Eigenen KartenTyp
Eintrag für BT848_GPIO_OUT_EN      65535     ( Schaltwert )
Eintrag für BT848_GPIO_REG_INP         0     ( Input-Control )
Eintrag für BT848_GPIO_DATA     16777204     ( Eingangswunsch)
*********************************************

Diese Werte könnt Ihr nun im Menü BT8x8->TV-Karte->Eigenen Kartentyp erstellen
eintragen.
BT848_GPIO_DATA bei dem gewählten Eingang oder einfach bei Ton AN.

Klickt auf den Radio-Button neben eurem Toneingang um diesen Eingang zu testen.
Klickt auf den Button Test.
Sind alle drei Werte richtig sollte nun Ton kommen.
(Siehe auch version 2.4 )

Für VideoCrypt habe ich die Farbdekodierung in MMX eingebaut. Ich hoffe
das damit die Grundlage auch für eine bessere Dekodierung der
"Harten VC-Sender" geschaffen ist. Ich werde das als nächstes angehen.

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 3.2

Jede Menge neuer Kram

Audio : Diverse Bugs beim MSP-Support gefixed !
        ( Volume - Ton an/aus )
        Beim Umschalten wird jetzt der Ton ausgeblendet

Neue Audio - Kontrolle : Der MSP-Equalizer kann nun eingestellt werden

Secam-Support in der Decodierung.

Ausgabe:

Automatische 15/16 Bit Erkennung

Overlay-Support ist abhängig von der Graka. Ob die Graka Overlay kann könnt ihr unter BT8x8-Hardwareinfo
erfahren. Ist dort verfügbar eingetragen, und es geht doch nicht liegt es in der Regel an der gewählten
Auflösung !!!

Raw-Surface/Raw-Overlay  : TV-Bild nearly ohne CPU-Last ( Kein Decording )
                           Das BT-Risc-Programm schreibt in den Bildschirmpuffer

Overlay-Support          : Es entfallt die RGB-Konvertierung (++++ Performance ++++ )
                           ( Wenn die Graka es kann )
Overlay-Streching        : Hardware-Sizing des Fensters
                           ( Wenn die Graka es kann )

Y-Scaling nun auch sauber bei Free-TV.

Im TV-Modus kann nun das Fenster verschoben werden. In den TV-Bildschirm mit linker Maustaste rein, drücken
und gedrückt halten und los gehts ( Achtung : Im Decoding-Modus sehr träge )

Da meine Karte kein Overlay kann, danke ich an diese Stelle den Overlay-Testern ( MM und Thomimaus )

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 3.1b

Just a BugFix : Tuner sollte jetzt wieder gehen !! Bitte noch einmal Stereo testen

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 3.1

Ausgabe etwas schneller und sauberer

Bug in der Kanalauswahl über Tastatus beseitigt.

Neue Funktion:

Durch Klicken der rechten Maustaste kann der Mauszeiger nun ein und
ausgeschaltet werden.

Die folgenden Funktionen kann ich nicht testen, da meine TV-Karte
nicht so einen Chip hat. (Nur Mono, Kein Radio (Miro PCTV))

MSP3400 bzw MSP3410 (Nicam) Support

Stereo und Mehrkanalton sollte nun laufen. Neuer Menübaum in
BT8x8->Einstellungen->MSP/Radio

Vorgehensweise:

Ob eure Karte so ein Teil (und welches) könnt Ihr in dem Menu
BT8x8->Hardware-Info ablesen.

Im Menü BT8x8-Audio auf MSP/Radio schalten.

Der MSP3400 kann (sollte) mit nicht Nicam-Einstellungen laufen,
der MSP3410 mit den Nicam-Einstellungen.

Vermutliche Einstellungen im Menü BT8x8->Einstellungen->MSP/Radio

MSP3400 : TV Terrestial FM-mono + FM-stereo
          Major Carrier : PAl B/G
          Minor Carrier : PAL B/G FM-stereo

MSP3410 : NICAM B/G, D/K
          Major Carrier : PAl B/G
          Minor Carrier : PAL B/G NICAM

(Ihr könnt auch automatische Einstellung probieren )

Automatische Stereoanpassung:

Wechselt ein Sender von Mono auf Stereo, wird automatisch
nachgezogen. ( Bei Mehrkanal-Ton muß diese Option wohl ausgeschaltet werden,
und explizit auf einen Tonkanal geschaltet werden. )

Probiert es aus und gebt Bescheid, da ich es nicht testen kann !!!!

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 3.0

Bug in der Ausgabe ( Farbfehler ) beseitigt.
Beim Starten kann es bei älteren Versionen vorkommen, das kein Ton verfügbar war.
Ich hoffe das Problem gefixed zu haben.

Beim Umschalten von Decoding auf Normal-TV wird nun der Hintergrund gelöscht.

Neue Funktion:

Umschalten kann nun auch mit Eingabe der Programmnummer gemacht werden. Die Programm
nummer ist die erste Zahl in der Kanalliste.

Einfach z.B. eine 1 auf der Tastatur tippen und es wird umgeschaltet.
Das Umschalten erfolgt mit 1 Sekunde verzögerung ob der 1 u.U. noch eine weitere Zahl
folgt. Bei zwei Zahlen wird sofort umgeschaltet.

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.9

Alle Ausgabe-Funktionen überarbeitet !!

Es ist nun möglich das Bild in Y-Richtung beliebig zu strecken .
Damit sollte der schwarze Rand bei 800*600 verschwunden sein.

NEUE Funktionen

Neues Menu: Scaling

Die Funktion MovieBoost ist nun auch im nicht dekodermodus verfügbar.
Damit kann bei Filmen die Ausgabe des schwarzen Randes unterdrückt werden.
Das bring einigen Performancegewinn.

Die Funktion Y-Strech wird z.B. ein 16:9 Film auf 4.3 umgerechnet. Damit können
auch die schwarzen Ränder unterdrückt werden.

Menü Decoding->NagraVision->Schwarz Schwellwert.

Bei dunkelen Szenen ( oder auch bei Fußball, wo oben viele Zuschauer zu sehen sind )
wurden Zeilen als Schwarz erkannt, die eigentlich keine sind. Bei Filmen ging die
Framerate runter, bei Fußball war dies mit ein Grund für Aussetzer in der Dekodierung.
Diese Schwellwert kann nun eingestellt werden. Der Defaultwert ist 45,was eigenlich
bei allen Einstellungen passt. Mit einem reduzierten Wert ist einiges an Fine-Tuning
möglich.

Vorgehensweise: Einen schönen 16:9 ( oder Film mit schwarzem Rand ) sehen.
                Den Stabilisator mit F8 locken.
                Den Schwellwert reduzieren, bis das Bild nicht mehr richtig dekodiert wird.
                3-4 zum schwellwert addieren und das wars.

Achtung: Ein zu kleiner Schwellwert erzeugt Aussetzter in der Dekodierung !!

Menü Decoding-> Automatische Erkennung

MuldiDec ist in der Lage das Schaltsignal für die Syster/Nagravision-Dekoder auszuwerten und
kann nun den Dekodiermodus selbstständig ein bzw ausschalten.

Achtung : Diese Funktion liest die VBI-Daten ein und wertet diese entsprechend aus.
          Das führt zu einer höheren BUS-Last. Nicht so schnelle System sollten weiterhin
          manuell geschaltet werden.

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.8

Neue Funktion bei der Ausgabe ( Allways on Top )

Bug bei der Bildstabilisierung bereiningt und einen im MatrixMode (ME oder MO)!
Die Dekodierstörungen sollten verschwunden sein.
Für langsame System kann in den entsprechenden Modis nun die Testzeilenanzahl
reduziert werden. Gute Ergebnisse bereits ab 12 Testzeilen ( Filmen )

VideoText nutzt nun den angegebenen SeitenPuffer optimaler ( und richtig + Speed )
und wird nun auch im VollbildModus ( NICHT Surface ) richtig unterstützt.

Im DIB ist der Hintergrund schwarz.

Fehler bei eigenen GPIO-Daten gefixed ( Es wurden nur 2 Byte statt der 3 Byte gesetzt )

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.7

Neu Anzeigemodi eingefügt

- 15 Bit RGB555 Surface
- Es kann eine eigene Full-Screen Auflösung z.B ( 720 * 576 bei Matrox ) eingegeben werden

( Siehe Menu Ausgabe und Ausgabe->Art )

Diverse Bugs gefixed.
Beim Verschieben vom Fenster,  Ausgeben  über darstellbare Grenzen und
das Wegschalten der Statusanzeige führten in älteren Versionen zu Problemen.

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.6

Die HQ-Ausgabe ist noch einmal überarbeitet.
Es treten keine Farb-Störungen mehr auf.

Diverse Bugs gefixed.
u.A.
Der Fehler : Schreiben bei Tuner-Device sollte weg sein !!!

VideoText in der Cache-Größe konfigurierbar.
von 128 bis 800 ( Alle Seiten ) alles drinnen.

BildStabilisierung genauer justiert.

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.5

Die HQ-Ausgabe ist überarbeitet. Es sollten einige Störungen bei der Ausgabe der
Syster-Bilder weg sein.

Bei 800x600 wird der Hintergrund geschwärzt.

Die BildStabilisierung ist überarbeitet, da die Pal-Plus Zeile immer mehr verschwindet.

Beim Starten des Dekoders wird automatisch der beste Dekodierungsmodus gesucht.
Sie die Angaben in der Statuszeile.

Beim Umschalten der einzelnen Modi kann es zu kurzen Störungen kommen. Das erkennen
des besten Modus läuft am besten bei hellen Bildern.

In der StatusZeile können folgende Angaben kommen:

+E0     / +O0              Zeile 0 Even / Odd vor der eigentlichen Dekodierung erkannt.
+HE0(x) / +HO0(x)          Zeile 0 Even / Odd vor der eigentlichen Dekodierung erkannt ( Ist im ersten Stück
                           mit x Pixelschritten schwarz )
+E1     / +O1              Zeile 1 Even / Odd vor der eigentlichen Dekodierung erkannt.
+E285   / +O285            Zeile 285 Even / Odd vor der eigentlichen Dekodierung erkannt.
+E285   / +O286            Zeile 286 Even / Odd vor der eigentlichen Dekodierung erkannt.

+ME (x) / +MO(x)           Rand mit der Breite X erkannt.  ( z.B. 16:9 )

Bei jedem diese Modi werden die Korrelationen, die nicht in Frage kommmen, auch nicht bewertet.
( Bei Fußb. waren es 2 Zeilen pro Field ( E0+E286+O285+O286 )). Daher können diese Sendungen mit
diesen Zusatzangaben deutlich stabieler und wg. Ausschluß etlicher Kombinationen auch schneller
dekodiert werden.

Der Modus E0/O0 bzw HE0/HO0 entspricht einem quasi PalPlus auf beiden Fields.
Das bedeutet bei mir  50 FPS auf P200 bei 640*480. ( Für 800*600 ist die Kiste zu schlapp )

Der StabilisierungsModus kann zur Laufzeit über die F9 - Taste auch ausgeschaltet werden, da die
automatische Modussuche bei dunkelen Bildern vor die Pumpe läuft.

Ist ein entsprechender Modus gefunden worden, so sollte dieser Modus mit der F8-Taste von Automatisch
auf Lock geschaltet werden. Im Lock-Modus wird die aktuelle Einstellung nicht mehr verändert. Dann stören
auch keine dunkelen Stellen im Film mehr. Bei dunkelen Szenen geht die FPS/Rate etwas nach unten, da mehrer
Zeilen der gelockten Bedingung entsprechen d.h es müssen mehrere Korrelationen  berechnet werden müssen

Achtung : Ist der Modus Lock, so gilt dieser Modus auch nach z.B. umschalten auf einen anderen SysterSender.
          Das Bild wird vermutlich nur mit Fehlern dekodiert werden. Das gleiche gilt für 2 aufeinander
          folgende Filme. Jede Sendung kann auch einen anderen Modus haben.

Weiter Audio-Parameter Sie Unten

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.4

Testweise Support für 849 und 879 eingebaut

Der Audio-Eingang ist nun frei konfigurierbar.
Damit können diverse Karten eingebunden werden.

Neu sind die Dialoge im Menu BT8x8 -> TV-Karte -> Eigenen KartenTyp
                             BT8x8 -> TV-Karte -> Eigenen Kartentyp einstellen
                             BT8x8 -> TV-Karte -> Karte beim nächsten Start nicht anfassen

Folgenden Funktionen :
Menü BT8x8 -> Videoeingang -> Tuner beim nächsten Start nicht anfassen
     BT8X8 -> TV-Karte -> Karte beim nächsten Start nicht anfassen
Wer beide Punkte anwählt sollte mit gänzlich Unbekannten BT8x8 Karten arbeiten können.
1. Orginale TV-Anwendung starten, alles einstellen und abschießen ( Taskmanager )
2. MultiDec starten.

Eigenen Kartentyp einstellen
Damit ist es möglich eigene GPOI-Daten zu erstellen.
Vorgehensweise :

In der IniDatei MultiDec.ini  bitte folgenden Eintrag machen
SAVESETTING=TRUE;
Orginale TV-Anwendung starten, alles Einstellen (TV-Bild muß zu sehen sein ) und laufen lassen.
Dabei MultiDec starten. ( Das dürfte in der Regen einen Hänger verursachen, aber entscheiden ist das
auslesen der Werte aus dem BT. )

Es wurde eine Datei Setting.BT erzeugt.
In dieser Datei stehen die Werte für eure gewählte Einstellung.
( Ein bischen Experimentierfreudigkeit ist schon gefragt )
Diese können dann an die entsprechende Position in dezimal eingegeben werden.

Der Wert für BT848_GPIO_OUT_EN ist in der Regel immer 65535 ( 0xffff );
Ändert einen Wert (Tuner/Extern aus etc. ) und klick den Radio-Button neben der Zeile an. Klickt auf Test und die entsprechenden
Werte werden gesetzt.
Wichtig sind eigentlich nur 3 Werte
BT848_GPIO_OUT_EN
BT848_GPIO_DATA (Tuner/Intern/Extern/An ) Dann einer für Ton, ob Tuner intern oder Extern ist egal, Radio wäre nicht so gut. (  kann auch 0 sein wie bei der LifeView FlyVideo II. )
BT848_GPIO_DATA_AUS Ton aus , damit nach Programmende auch Ruhe ist

In den entsprechende Foren könnt ihr weitere Settings Posten.

Alle NT-Besitzer will ich noch einmal auf die richtige und wichtige Einstellung des NTDRIVERNAME hinweisen !!!!!

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.3b

HotFIX

Fehler bei der Auflösung bereinigt und
Starten Stoppen vom orginalen NT-Treiber eingebaut.

Es gibt bei manchen Treibern probleme wenn der noch läuft !!

Muß in der INI eingtragen werden :
Beispiel :

; NTDRIVERNAME=                          Diese Variable muß bei NT gesetzt werden, wenn die Org. TV-Software installiert ist.
;                                        Name des Gerätes der org. Software. ( Bei meiner Hauppage ist es hcw848nt )
;                                        Ist abzulesen in der Registry unter HKLM\SYSTEM\CurrentControlSet\Services\XXXXX
;                                        Die Bezeichnung XXXXX ist einzutragen
NTDRIVERNAME=hcw848nt;

/**************************************************************************************************************/

MultiDec Version 2.3

**************** Neue Funktionen *****************

1. )

Probleme mit unbekannten Tuners

Tuner Phillips FI1216MF MK2

Es ist nun möglich neue Tunerparameter zu implementieren.
Menü BT8x8 -> Videoeingang -> Tuner -> Manuell

Dazu müssen natürlich die Tunerparameter eingegeben werden.
Menü BT8x8 -> Videoeingang -> Tuner-Parameter Manuell

Alternativ kann alles, was den Tuner angeht ausgeschaltet werden.
Menü BT8x8 -> Videoeingang -> Tuner beim nächsten Start nicht anfassen
Dazu muß erst mal Multidec gestarter werden, um diese Option zu setzen.
Danach Multidec beenden und die orginal Software starten. Bitte den Tuner
auf die entsprechende Frequenz eingestellen und diese Soft beenden.
Danach sollte Multidec auch ein Bild zeigen. Viele Menüoptionen sind in diesem
Modus deaktiviert.

Der bessere Weg ist aber die Tunerparameter heraus zu bekommen.

Kleine Hilfe zur manuellen Tunereinstellung

VHF-Low
     Der erste Wert ist der Schwellwert. Ist die angegebene Frequenz
     ( in Mhz * 1000000) kleiner diesem Wert wird der Tuner mit der ID
     im zweiten Feld initialisiert. Diese Id ist ein Byte von 0 bis 255
     Diese ID zwingt den Tuner in den angegebenen Frequezbereich.

VHF-High
     Der erste Wert ist der Schwellwert. Ist die angegebene Frequenz
     ( in Mhz * 1000000) kleiner diesem Wert wird der Tuner mit der ID
     im zweiten Feld initialisiert. Diese Id ist ein Byte von 0 bis 255
     Diese ID zwingt den Tuner in den angegebenen Frequezbereich.

UHF
     Trifft keine der ersten beiden Bedingungen zu, so wird der Tuner
     mit der ID initialisiert.
     Diese Id ist ein Byte von 0 bis 255

Konfigurationsbyte
     Dieses Byte teilt dem I2C-Bus mit, das am Tuner einstellungen
     vorgenommen werden sollen.
     ( Ich denke es ist dann richtig, wenn bei einer Kanalsuche sich der Schnee verändert )
     Diese Id ist ein Byte von 0 bis 255

I2C Bus-Adresse
     Dieses Byte ist die Adresse am I2C-Bus.
     Mögliche Werte von 0xc0 bis 0xce (192 bis 206)
     Multidec sucht diese Adresse automatisch.

Frequenz-Offset
     Die angegebene Frequenz ( in Mhz * 1000000) wird erst mit VHF-Low,
     VHF-High oder UHF abgeprüft und die entsprechende Frequenz ID ermittelt.
     Als letztes wird dieser Offset zur Frequenz addiert. Werte von 0 bis 65535 sind zugelassen.

2.) VideoText

Ich habe den VideoText mit dem BT-Interrupt syncronisiert.

Nun können Seiten auch ausgewäht werden, indem man einfach auf die Seitenzahl im VT-Fenster
mit dem Mauszeiger klickt.

Der Cache für VT ist auf 256 Seiten vergrößert.

**************** Änderungen *****************

Nagra-Decoding : Es werden nun 96 Pixel/Zeile für die Korrelation genommen.

Bei Halbbildern wird ein  neues eigenes Risc-Programm genommen. Dieses Transportiert auch
nur noch das Halbbild über den PCI-Bus. ( Halbe Last ) Dadurch kann die Dekodierung bereits
nach dem Odd-Field beginnen, da das Even-Field erst für das nächste Bild ist.
Damit kömmt mein P200 locker auf die 25 FPS bei PalPlus und 48 Testzeilen und Surface.

BlackLine-Erkennung auf MMX-Basis und mit Koppelung and die Helligkeitssteuerung vom BT.
Damit können u. U. weiter Zeilen für die Dekodierung ausgewertet werden.

Tschau Espresso

/**************************************************************************************************************/

MultiDec Version 2.2

Es handelt sich eigentlich um eine Testversion, aber ich möchte Sie
denoch freigeben. Alle, die das Problem mit den vielen doppelbildern haben,
bzw. deswegen keine Sender finden :

Im Menu BT8x8 mit den IFORM-Paramtern mal spielen !!!!

Ursache ist eine andere Einstellung BIT 3 und 4 im IFORM Parameter.
Warum ist mir nicht klar !!??

Versucht einmal zu scannen mit :
1. Ländereinstellung Deutsche Kanäle
2. Känale scannen gemäß Ländereinstellung

Ist nix gefunden worden ( Dauer ca. 4 Minuten ) Schaltet im Menü

BT8X8 den IFORM-Parameter mal von XT0 auf XT1 oder umgekehrt !!!!!

Scan wiederholen.

Sollte beim scannen über mehrere Frequenzen ein Blaues Bild erscheinen,
so wählt eimal einen anderen Tuner aus ( Temic Pal oder Pilips Pal sollte gehen )

Danke an alle Beta-Tester mit dem IFORM

Tschau Espresso

PS: Die Sourcen werde ich natürlich weiterhin freigeben, aber die Version 2.2 ist
eigentlich noch nicht fertig. Ich werde daher diese Version noch nicht mit Sourcen
weitergeben, es wird aber nachgeholt.

/**************************************************************************************************************/

Multidec Version 2.1

Bug im Tunerbereich beseitigt.
RISC-Programme Neu

Kleine Anleitung:

Es ist entscheidend, das der Tuner richtig eingestellt wird.
In der Regel ist ein Philips oder Temic Pal Tuner vorhanden.
Audio auf Extern, wenn dort ins System oder auf Lautsprecher gegangen wird.

Probleme mit VideoText ??

Stellt mal auf ARD oder ZDF. Ist der Text nicht lesbar oder keiner oder sind "Schmierzeichen"
drinnen, ist der Sender nicht richtig eingestellt ( oder die Antenne )
Versucht es mal mit Fine-Tuning
Menü Kanäle -> Kanalliste

Doppelclick auf den Sender in der Liste und dann über + oder - ;
Ihr könnt da auch den Sendernamen richtig eintragen.

Ein fehlerhaftes Tuning ( z.B. um 0.25 Mhz ) führt auch zu fehlerhafter
Dekodierung .

PS: Ich habe mir eine Haupage Win TV Radio ( BT878 ) besorgt und kann unter NT 4.0
VideoText schauen .

Fragen im Forum Free-TV.

Gruß Espresso

/**************************************************************************************************************/

Multidec Version 2.0

Der gesamte Treiberbereich ist neu !

Die gesamte Hard u. Software-Erkennung ist automatisch !!

Es wird nun auch der BT878 und der BT848 unterstützt !!
Ebenso ist ein Treiber für Win95 und NT 4.0 vorhanden !!
( Für NT mit Administrator-Rechten, oder mit dem Recht Geräte/Dienste
zu verwalten )
Das NT-Gerät MultiDec BT8x8 wird beim Programmstart geladen und
nach Programmende entfernt.

Weitere Änderungen :

**************** Haupage NT4.0 Videotext *******************

Nagra : der Burst für die Farbphase wird ausgewertet

Bei Vidoecrypt versuche ich derzeit einen Decoder-Modus zu bauen.
Wer hat dazu Infos !!!!

Tschau Espresso

Systemvoraussetzungen :

DirectX
16 oder 15 Bit Graphikeinstellung
Windows 95 ( 98 ) oder NT 4.0
TV-Karte mit Bt8x8
MMX-PC (Ohne MMX läuft nicht viel Nur VT RGB15/16 Kein Dekoder );

/**************************************************************************************************************/